我有原始的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。
您能推荐我任何解决方案吗?
谢谢
答案 0 :(得分:0)
如果需要在df2中添加average
列,请使用DataFrame.merge
和DataFrame.drop_duplicates
:
df2.merge(df1.drop_duplicates('country')[['country','average']], on='country', how='left')
如果需要汇总mean
:
df2.join(df1.groupby('country')['average'].mean(), on='country')