繁体   English   中英

根据另一列填充Pandas中的非数字值

[英]Filling non-numeric values in Pandas based on another column

我在pandas数据帧中丢失了非数字数据,有没有办法在另一列匹配时用另一行的值替换NaN? 例如:

tdf = pandas.DataFrame({
    "id": [np.nan, 22, 22, 45, 45, 81],
    "item": ["apple", "apple", "apple", "orange", "orange", "banana"]
})

    id  item
0   NaN apple
1   22  apple
2   22  apple
3   45  orange
4   45  orange
5   81  banana

所以我想用第一行替换22中的id,因为该项与第1行或第2行相同。

您可以groupby在“项目”,并通过PARAM as_index=False ,然后调用bfill填补NaN向后值:

In [424]:

tdf.groupby('item', as_index=False)..bfill()
Out[424]:
   id    item
0  22   apple
1  22   apple
2  22   apple
3  45  orange
4  45  orange
5  81  banana

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM