python - pandas groupby 与 nan 的意思

标签 python pandas dataframe mean pandas-groupby

我有以下数据框:

date id  cars
2012 1    4  
2013 1    6
2014 1    NaN    
2012 2    10 
2013 2    20 
2014 2    NaN  

现在,我想为忽略 NaN 的每个 ID 计算多年来汽车的平均值。结果应该是这样的:

date id  cars  result
2012 1    4      5
2013 1    6      5
2014 1    NaN    5
2012 2    10     15
2013 2    20     15
2014 2    NaN    15

我有以下命令:

df["result"]=df.groupby("id")["cars"].mean()

命令运行没有错误,但结果列只有 NaN。 我做错了什么?

最佳答案

使用transform ,这将返回与原始大小相同的系列:

df["result"]=df.groupby("id")["cars"].transform('mean')
print (df)
   date  id  cars  result
0  2012   1   4.0     5.0
1  2013   1   6.0     5.0
2  2014   1   NaN     5.0
3  2012   2  10.0    15.0
4  2013   2  20.0    15.0
5  2014   2   NaN    15.0

关于python - pandas groupby 与 nan 的意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44284946/

相关文章:

python - 包装函数的函数名?

python - 如何在 Python 中编写一个永远在线的 "Quit"选项?

python - 磁盘上的 Pandas 稀疏数据框比密集版本大

python - 在Python中合并两个不规则数据框

python - 一一循环数据帧( Pandas )

从 R 中的数据框中删除重复的列组合

Python 嵌套元组列表

python - 使用平台时指定特定于 Python 版本的 testenv 设置

python - 使用 tensorflow 在 docker 上导入 pandas

python - Pandas:为具有多列的数据框实现groupby +聚合的优雅方法?