【发布时间】:2015-03-25 00:25:57
【问题描述】:
我有这个漂亮的 pandas 数据框:
我想按“0”列(代表年份)对其进行分组,并计算其他列的平均值。我用这段代码做这样的事情:
df.groupby(0)[2,3,4].mean()
这成功地计算了每一列的平均值。这里的问题是出现在顶部的空行:
【问题讨论】:
标签: python pandas group-by mean
我有这个漂亮的 pandas 数据框:
我想按“0”列(代表年份)对其进行分组,并计算其他列的平均值。我用这段代码做这样的事情:
df.groupby(0)[2,3,4].mean()
这成功地计算了每一列的平均值。这里的问题是出现在顶部的空行:
【问题讨论】:
标签: python pandas group-by 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
【讨论】:
reset_index 可用于返回标准索引`