需要在Pandas groupby中以特定格式输出

时间:2016-02-25 10:12:38

标签: python python-3.x pandas

我在我的数据集上运行了以下命令:

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

我可以用什么来实现上述目标?

1 个答案:

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