使用pandas在Python中对数据进行分组会产生空白的第一行

时间:2015-01-26 15:01:15

标签: python pandas group-by mean

我有这个漂亮的pandas数据帧:

enter image description here

我想用“0”列(代表年份)对其进行分组,并计算每年其他列的平均值。我用这段代码做了这件事:

df.groupby(0)[2,3,4].mean()

成功计算每列的平均值。这里的问题是出现在顶部的空行:

enter image description here

1 个答案:

答案 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