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'))