我在我的数据集上运行了以下命令:
data.groupby(['month', 'item'])['date'].median()
输出如下:
month item
2014-11 call 107
data 29
sms 94
2014-12 call 79
data 30
sms 48
但是,我需要这样的输出:
month item
2014-11 call 107
2014-11 data 29
2014-11 sms 94
2014-12 call 79
2014-11 data 30
2014-11 sms 48
我可以用什么来实现上述目标?
答案 0 :(得分:3)
从你的问题中你不清楚你的DataFrame是什么样的(特别是索引应该是什么)。
如果按.reset_index()
进行操作,您将得到以下内容:
df = pd.DataFrame({'a': [1, 1, 2, 2], 'b': [1, 2, 1, 2], 'c': range(4)})
df.c.groupby([df.a, df.b]).sum().reset_index()
a b c
0 1 1 0
1 1 2 1
2 2 1 2
3 2 2 3
即,具有运行索引的DataFrame。
如果按.reset_index().set_index('month')
进行操作,您将得到以下内容:
df = pd.DataFrame({'a': [1, 1, 2, 2], 'b': [1, 2, 1, 2], 'c': range(4)})
df.c.groupby([df.a, df.b]).sum().reset_index().set_index('a')
b c
a
1 1 0
1 2 1
2 1 2
2 2 3