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

将Pandas GroupBy对象转换为指定格式DataFrame的技术求助

Pandas GroupBy 转目标DataFrame解决方案

没问题,我来帮你搞定这个GroupBy转DataFrame的事儿!下面分两种最常见的场景给你示例,你可以根据自己的目标格式选对应的方法:

情况1:把每个分组的项拆成单独行(行级展开)

如果你的需求是让每个分组里的每一项都单独占一行,和对应的名称一一对应,用explode方法最方便(Pandas 0.25及以上版本支持,效率也高)。

举个实际例子:

import pandas as pd

# 先模拟你的原始数据和GroupBy对象
df = pd.DataFrame({
    'name': ['Alice', 'Alice', 'Bob'],
    'item': ['book', 'pen', 'notebook']
})
# 按name分组,把每个组的item聚合成列表
grouped = df.groupby('name')['item'].apply(list)

# 转成目标格式:每个item单独一行
result_df = grouped.explode('item').reset_index()
print(result_df)

运行后输出的结果:

name      item
0  Alice       book
1  Alice        pen
2    Bob  notebook

情况2:把每个分组的项拆成多列(列级扩展)

要是你想把每个分组里的项作为不同的列(比如item_1、item_2这种命名),可以用apply(pd.Series)再给列重命名。

还是用上面的GroupBy对象示例:

# 把分组后的列表转成多列
result_df = grouped.apply(pd.Series).rename(columns=lambda x: f'item_{x+1}')
print(result_df)

输出结果会是:

item_1  item_2
name                
Alice    book     pen
Bob   notebook    NaN

如果你的GroupBy涉及更复杂的聚合逻辑,或者目标格式有特殊要求(比如指定列名、处理空值等),可以把你的原始数据片段和期望的目标格式告诉我,我再帮你调整代码~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:50:41