![](/img/trans.png)
[英]How to index the values of a dataframe using another dataframe with the same index?
[英]python - replace values in dataframe using another dataframe with same index
我有一个 dataframe 缺少某些列的值:
a = pd.DataFrame(data = {"name":['bob','sue','dave'],'status':[np.NaN,np.NaN,'A'],'team':['red','blue',np.NaN]},index=[100,101,105])
a
我有另一个 dataframe 具有相同的索引,其中一些缺失值已被替换:
b = pd.DataFrame(data = {"name":['bob','sue','dave'],'status':['I','O','A'],'team':['red','blue',np.NaN]},index=[100,101,105])
Dataframe b
有没有办法将 map dataframe b
转换为a
以便替换a
中特定列的值? a
中有很多其他行不在b
中,所以我只想替换具有相同索引的行。
我试过这个,但它将值设置为np.NaN
:
a['status'] = a['status'].map(b['status'])
a['team'] = a['team'].map(b['team'])
Dataframe a
映射后
它可以通过使用切片操作来完成。 第二个dataframe的索引用于切片第一个dataframe
然后分配第二个 dataframe。
a.loc[b.index] = b
Output:
name status team
100 bob I red
101 sue O blue
105 dave A NaN
所有功劳归功于@Sushanth
>>> a.combine_first(b)
name status team
100 bob I red
101 sue O blue
105 dave A NaN
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.