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

如何在使用groupby操作时自动去除分组列?

在Pandas GroupBy中移除分组列的方法

在Pandas里,原生没有直接的GroupBy参数能让遍历得到的子DataFrame自动剔除分组列,不过有两种简洁的原生操作组合方式可以实现你要的效果:

方法1:遍历过程中手动移除分组列

这是最直接的做法,在遍历GroupBy对象时,对每个子DataFrame删除分组列即可:

import pandas as pd

# 构造示例数据
df = pd.DataFrame({
    "dt": ["2023-01-01", "2023-01-01", "2023-01-02", "2023-01-02"],
    "values": [10, 20, 30, 40]
})

groups = df.groupby("dt")
for start_dt, sub_df in groups:
    # 移除dt列
    sub_df = sub_df.drop("dt", axis=1)
    print(f"分组键: {start_dt}")
    print(sub_df)

方法2:先移除分组列再按分组键分组

如果你希望从根源上让GroupBy返回的子DataFrame不带分组列,可以提前从原DataFrame中删除分组列,再用单独提取的分组键进行分组:

# 提取分组键
group_keys = df["dt"]
# 删除原DataFrame中的dt列,再按group_keys分组
groups = df.drop("dt", axis=1).groupby(group_keys)

for start_dt, sub_df in groups:
    print(f"分组键: {start_dt}")
    print(sub_df)

第一种适合仅在遍历临时处理的场景,第二种适合后续所有子DataFrame都不需要分组列的场景,两种方式都完全基于Pandas原生操作实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 19:47:08