You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将pandas.core.groupby.SeriesGroupBy转换为DataFrame?

将SeriesGroupBy转换为DataFrame的几种方法

嘿,我懂你现在的需求啦——你已经把DataFrame按group列完成分组,提取分组后的group列得到了SeriesGroupBy对象,现在想把它转成标准的DataFrame对吧?这里有几种实用方法,你可以根据具体需求来选:

场景1:保留所有原始行的DataFrame

如果你想得到和原数据结构一致、仅包含group列的DataFrame(效果类似直接取df1[['group']]),可以试试这两种方式:

  • 利用obj属性直接获取原始Series,再转成DataFrame:
df_result = g1_1st_column.obj.to_frame()

这个方法最直接,obj是SeriesGroupBy自带的属性,能直接返回分组前的原始Series,一步就能转成DataFrame。

  • 遍历分组并合并:
import pandas as pd
df_result = pd.concat([group.to_frame() for name, group in g1_1st_column])

这种方式会逐个取出每个分组的Series,转成DataFrame后再用pd.concat合并,适合你需要对每个分组做额外处理的场景。

场景2:每个分组只保留一行的汇总DataFrame

如果你的目标是得到每个分组一行的精简DataFrame(比如每个组的group值唯一),可以用这些方法:

  • 取每个组的第一个元素再转成DataFrame:
df_result = g1_1st_column.first().to_frame()

运行后你会得到一个以分组键为索引、包含每个组group值的DataFrame,结果如下:

group
group
a          a
b          b
  • 用聚合函数处理后转成DataFrame:
df_result = g1_1st_column.agg('first').to_frame()

和上面的方法效果一致,agg可以灵活替换成其他聚合逻辑(比如'last'、'unique'),适合你需要定制聚合规则的场景。

另外提一句,如果只是需要原数据的group列作为DataFrame,其实直接用df1[['group']]更高效,但既然你是从SeriesGroupBy对象出发,上面的方法就完全适用啦。

内容的提问来源于stack exchange,提问作者Sean McCarthy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:09:00