我有一个类似下面的df:
df = pd.DataFrame({'id': ['a','b','c','d'],
'ac' : ['123','223', np.nan, np.nan],
'prev' : [np.nan, np.nan, 'a','b']})
输出:
id ac prev
0 a 123 NaN
1 b 223 NaN
2 c NaN a
3 d NaN b
对于ac为null,获取prev的值,然后查找id列。用ac列中的值填充null
预期产出:
id ac prev
0 a 123 NaN
1 b 223 NaN
2 c 123 a
3 d 223 b
我如何做到这一点?谢谢
如果我理解正确,您希望用“prev”列对应值指示的“id”给出的值填充“ac”列的nan值。如果是这样,您可以尝试使用“id”作为索引,这样您就可以使用.loc访问感兴趣的行
结果是:
请注意,如果“id”列没有重复的值,则此代码有效。希望我能帮忙
您可以使用^{} 来创建布尔掩码,使用此掩码的布尔索引来
map
基于id
将prev
列的值ac
列的值id
:结果:
相关问题 更多 >
编程相关推荐