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

Grouping data in Python with pandas yields a blank first row

我有这个不错的 pandas 数据框:

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

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

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

那只是一个显示的东西,分组的列现在变成了索引,这就是它的显示方式,你会在这里注意到,即使你设置了 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