fre*_*888 3 python mean dataframe pandas pandas-groupby
我有以下数据帧:
date id cars
2012 1 4
2013 1 6
2014 1 NaN
2012 2 10
2013 2 20
2014 2 NaN
Run Code Online (Sandbox Code Playgroud)
现在,我希望得到多年来汽车的平均值,因为每个id都忽略了NaN的.结果应该是这样的:
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
Run Code Online (Sandbox Code Playgroud)
我有以下命令:
df["result"]=df.groupby("id")["cars"].mean()
Run Code Online (Sandbox Code Playgroud)
该命令运行没有错误,但结果列只有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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3492 次 |
| 最近记录: |