繁体   English   中英

如何基于其他熊猫数据框更新系列

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

您可以将新Seriesmap ,它们为不存在的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.

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