Pandas 用组平均值替换NaN值

Pandas 用组平均值替换NaN值,pandas,dataframe,group-by,nan,mean,Pandas,Dataframe,Group By,Nan,Mean,我有一个由国家、年份和许多其他特征组成的数据框架。一个国家有很多年 country year population..... etc. 1 2000 5000 1 2001 NaN 1 2002 4800 2 2000 现在,数据帧中有许多NaN。 我想用此列的国家平均值替换每列中对应于特定国家的每个NaN 例如,对于国家1对应的人口列中的NaN,2001年,我想使用国家1所有年份的平均人口=5000+4800/2。 现

我有一个由国家、年份和许多其他特征组成的数据框架。一个国家有很多年

country  year population.....  etc.
1        2000   5000
1        2001    NaN
1        2002   4800
2        2000
现在,数据帧中有许多NaN。 我想用此列的国家平均值替换每列中对应于特定国家的每个NaN

例如,对于国家1对应的人口列中的NaN,2001年,我想使用国家1所有年份的平均人口=5000+4800/2。 现在,我正在使用groupby.mean方法为每个国家寻找方法,但我遇到了以下困难: 1-当我确信它有价值时,一些方法被称为NaN。为什么会这样? 2-如何访问groupby子句中的特定值?换句话说,如何用正确的平均值替换每个NaN

非常感谢

首先使用combine_和groupby mean

df.combine_first(df.groupby('country').transform('mean'))
df.fillna(df.groupby('country').transform('mean'))