[英]How to update series based on other pandas dataframe
我想基于其他熊猫数据框更新数据,因为我只是收集更好的数据,这是数据集的示例
这是我的资料
No Country Language Capital
1 Indonesia Bahasa Jakarta
2 Malaysia Bahasa Kuala Lumpur
3 Brunei Bahasa Bandar Seri Begawan
4 Nigeria English Abuja
我的第二个数据框
Nation Capital City
Malaysia Lagos
Nigeria Putrajaya
我想要的是
No Country Language Capital
1 Indonesia Bahasa Jakarta
2 Malaysia Bahasa Putrajaya
3 Brunei Bahasa Bandar Seri Begawan
4 Nigeria English Lagos
首先根据您的新映射创建一个系列:
s = df2.set_index('Nation')['Capital City']
然后使用pd.Series.update
更新系列:
df1['Capital'].update(df1['Country'].map(s))
您可以将新Series
与map
,它们为不存在的Nation
创建了NaN
,但被fillna
取代了:
s = df2.set_index('Nation')['Capital City']
df1['Capital'] = df1['Country'].map(s).fillna(df1['Capital'])
print (df1)
No Country Language Capital
0 1 Indonesia Bahasa Jakarta
1 2 Malaysia Bahasa Lagos
2 3 Brunei Bahasa Bandar Seri Begawan
3 4 Nigeria English Putrajaya
或更慢的解决方案用replace
:
df1['Capital'] = df1['Country'].replace(s)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.