我有一个数据框,我应用了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'
非常感谢!
答案 0 :(得分:1)
您可以非常简单地将pandas.core.groupby.SeriesGroupBy转换为DataFrame,如下所示:
survivor.apply(pd.DataFrame)
答案 1 :(得分:0)
看来你需要apply
自定义功能:
def func(x):
#your code
return x
survivor.apply(func)