我有这个漂亮的pandas数据帧:
我想用“0”列(代表年份)对其进行分组,并计算每年其他列的平均值。我用这段代码做了这件事:
df.groupby(0)[2,3,4].mean()
成功计算每列的平均值。这里的问题是出现在顶部的空行:
答案 0 :(得分:1)
这只是一个显示事物,分组列现在变成了索引,这就是它显示的方式,你会注意到,即使你设置pd.set_option('display.notebook_repr_html', False)
,你仍然得到这一行,它没有对goruped df上的操作的影响:
In [30]:
df = pd.DataFrame({'a':np.random.randn(5), 'b':np.random.randn(5), 'c':np.arange(5)})
df
Out[30]:
a b c
0 0.766706 -0.575700 0
1 0.594797 -0.966856 1
2 1.852405 1.003855 2
3 -0.919870 -1.089215 3
4 -0.647769 -0.541440 4
In [31]:
df.groupby('c')['a','b'].mean()
Out[31]:
a b
c
0 0.766706 -0.575700
1 0.594797 -0.966856
2 1.852405 1.003855
3 -0.919870 -1.089215
4 -0.647769 -0.541440
从技术上讲,它已经分配了name
属性:
In [32]:
df.groupby('c')['a','b'].mean().index.name
Out[32]:
'c'
默认情况下,如果尚未分配名称,则没有名称:
In [34]:
print(df.index.name)
None