繁体   English   中英

python - 使用具有相同索引的另一个 dataframe 替换 dataframe 中的值

[英]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

数据框 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映射后

b 映射后的数据帧 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.

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