用组均值替换NaN值

时间:2018-10-16 22:16:59

标签: pandas dataframe group-by nan mean

我有一个由国家,年份和许多其他功能组成的数据框。一个国家有很多年

country  year population.....  etc.
1        2000   5000
1        2001    NaN
1        2002   4800
2        2000

现在数据框中有许多NaN。 我想用此列的国家/地区平均值替换每个列中与特定国家/地区对应的每个NaN。

例如,对于2001年对应于国家1的人口列中的NaN,我想使用所有年份中国家1的平均人口=(5000 + 4800)/ 2。 现在我正在使用groupby()。mean()方法来查找每个国家/地区的均值,但是我遇到了以下困难: 1-当我确定有一定价值时,某些手段即将以NaN的形式出现。为什么会这样呢? 2-如何获得对groupby子句中特定值的访问?换句话说,如何用正确的平均数替换每个NaN?

非常感谢。

1 个答案:

答案 0 :(得分:1)

combine_firstgroupby mean一起使用

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

df.fillna(df.groupby('country').transform('mean'))
相关问题