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

如何使用Pandas展开GroupBy表格并重复行数据

实现分组DataFrame展开为非分组形式的最优方法

如果你的目标是保持原有列结构,同时让分组后的行按需求重复展开,以下两种场景的最优方案供你参考:

场景1:已知每个分组的重复次数

如果已经明确每个分组需要重复的行数,直接用repeat方法结合索引操作就能快速实现:

import pandas as pd

# 假设你的分组后数据是grouped_df,包含重复次数列Repeat
grouped_df = pd.DataFrame({
    "Group": ["A", "B"],
    "Value": [10, 20],
    "Repeat": [3, 2]  # 每个分组要重复的次数
})

# 展开行并清理临时列
expanded_df = grouped_df.loc[grouped_df.index.repeat(grouped_df["Repeat"])]
expanded_df = expanded_df.drop("Repeat", axis=1).reset_index(drop=True)

场景2:基于原始数据还原(用聚合值填充原始行)

如果是从原始数据分组聚合后,想要回到原始行结构但保留聚合结果,用merge关联原始分组键是最稳妥的方式,完全不会改变原有列结构:

import pandas as pd

# 原始数据
raw_df = pd.DataFrame({
    "Group": ["A", "A", "A", "B", "B"],
    "OtherCol": [1, 2, 3, 4, 5]
})

# 分组聚合得到grouped_df
grouped_df = raw_df.groupby("Group")["OtherCol"].sum().reset_index(name="TotalValue")

# 关联原始分组键,实现行重复填充
expanded_df = raw_df[["Group"]].merge(grouped_df, on="Group")

这两种方法都比unstack更贴合你的需求——全程保持列结构不变,操作高效且逻辑清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 08:05:22