将pandas.core.groupby.SeriesGroupBy转换为dataframe

时间:2017-10-18 09:50:03

标签: python pandas dataframe pandas-groupby

我有一个数据框,我应用了groupby方法。现在我有一个pandas.core.groupby.SeriesGroupBy,但我不能使用任何数据帧方法。如何将其转换为可用的数据框?

type(survivor)
pandas.core.groupby.SeriesGroupBy

通过应用.groups,它看起来像这样:

{'C': Int64Index([  1,   9,  19,  26,  30,  31,  34,  36,  39,  42,
         847, 849, 852, 858, 859, 866, 874, 875, 879, 889],
        dtype='int64', name=u'ID', length=168),
'Q': Int64Index([  5,  16,  22,  28,  32,  44,  46,  47,  82, 109, 116, 126, 
143,
         156, 171, 186, 188, 196, 198, 208, 214, 241, 245, 260, 264, 274,
         727, 749, 767, 768, 776, 778, 787, 790, 825, 828, 885, 890],
        dtype='int64', name=u'ID'),
'S': Int64Index([  0,   2,   3,   4,   6,   7,   8,  10,  11,  12,
         877, 878, 880, 881, 882, 883, 884, 886, 887, 888],
        dtype='int64', name=u'ID', length=644)}

我已尝试按照其他一些相关问题的说明进行操作但仍会出现相同的错误(例如): AttributeError:'SeriesGroupBy'对象没有属性'set_index'

非常感谢!

2 个答案:

答案 0 :(得分:1)

您可以非常简单地将pandas.core.groupby.SeriesGroupBy转换为DataFrame,如下所示:

survivor.apply(pd.DataFrame)

答案 1 :(得分:0)

看来你需要apply自定义功能:

def func(x):
    #your code
    return x


survivor.apply(func)