使用 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
我有这个不错的 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