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

Convert pandas.core.groupby.SeriesGroupBy to a DataFrame

提问人:Sean McCarthy 提问时间:3/21/2018 更新时间:9/2/2021 访问量:19986

问:

这个问题没有一个令人满意的答案,所以我又问了一遍。

假设我有以下 Pandas DataFrame:

df1 = pd.DataFrame({'group': ['a', 'a', 'b', 'b'], 'values': [1, 1, 2, 2]})

我按第一列“group”分组:

g1 = df1.groupby('group')

我现在已经创建了一个“DataFrameGroupBy”。然后,我从 GroupBy 对象中提取第一列:

g1_1st_column = g1['group']

g1_1st_column类型为“pandas.core.groupby”。系列GroupBy”。请注意,它不再是“DataFrameGroupBy”。

我的问题是,如何将SeriesGroupBy对象转换回DataFrame对象?我尝试使用.to_frame()方法,并出现以下错误:

g1_1st_column = g1['group'].to_frame()

AttributeError:无法访问“SeriesGroupBy”对象的可调用属性“to_frame”,请尝试使用“apply”方法。

如何使用 apply 方法或其他方法转换为 DataFrame?

python pandas 数据帧 应用 pandas-groupby

评论

8赞 YOLO 3/21/2018
可能:g1['group'].apply(pd.DataFrame)
0赞 Sean McCarthy 3/21/2018
@ManishSaraswat,就是这样!这就是答案。就是这么简单!多谢!:D

答:

14赞 Sean McCarthy 3/21/2018 #1

Manish Saraswat在评论中亲切地回答了我的问题。

g1['group'].apply(pd.DataFrame)