根据条件从第一个df到另一个df的列值

时间:2020-11-12 12:01:44

标签: python pandas

我有原始的df,其中有“平均值”列,其中是国家(地区)的平均值。现在我有了new_df,我想在其中基于国家/地区添加这些df平均值。

df
id country   value  average
1   USA      3      2
2   UK       5      5
3   France   2      2
4   USA      1      2

new df
country   average
USA       2
Italy     Nan

我有一个可行的解决方案,但是有一个问题,当new_df中有一个我还没有计算平均值的国家时。在那种情况下,我只想填写nan。

您能推荐我任何解决方案吗?

谢谢

1 个答案:

答案 0 :(得分:0)

如果需要在df2中添加average列,请使用DataFrame.mergeDataFrame.drop_duplicates

df2.merge(df1.drop_duplicates('country')[['country','average']], on='country', how='left')

如果需要汇总mean

df2.join(df1.groupby('country')['average'].mean(), on='country')