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

Pandas中GroupBy分组后如何访问列数据并遍历操作

解决Pandas分组后遍历多维度分组并输出列数据的问题

首先修正你初始代码里的两处错误:

  • grouby是拼写错误,正确写法是groupby
  • pd.read_excel(test.xlsx')缺少左引号,应该是pd.read_excel('test.xlsx')

接下来实现你需要的需求:先按id分组,再在每个id分组内按color分组,输出对应value。

完整实现代码

import pandas as pd

# 加载Excel数据(确保文件路径正确)
df = pd.read_excel('test.xlsx')

# 第一步:按id分组
grouped_by_id = df.groupby(['id'])

# 遍历每个id分组
for id_key, id_group in grouped_by_id:
    print(f"=== id: {id_key} ===")
    # 第二步:在当前id分组内按color分组
    grouped_by_color = id_group.groupby(['color'])
    # 遍历每个color分组
    for color_key, color_group in grouped_by_color:
        print(f"  color: {color_key}")
        # 输出该color对应的所有value
        print(f"  values: {list(color_group['value'])}")

代码解释

  1. 按id分组:使用groupby(['id'])得到按id划分的分组对象,遍历的时候每个元素是(分组键, 对应子DataFrame)的元组。
  2. id分组内按color二次分组:对每个id对应的子DataFrame,再次调用groupby(['color']),得到该id下的颜色分组。
  3. 输出value数据:从颜色分组的子DataFrame中提取value列,转成列表后打印,清晰展示每个颜色对应的所有数值。

输出示例

运行代码后会得到如下格式的输出:

=== id: 1 ===
  color: Blue
  values: [20, 15]
  color: Green
  values: [5]
  color: Red
  values: [20, 25]
=== id: 2 ===
  color: Blue
  values: [20, 220, 120, 20]
  color: Green
  values: [220, 120, 45, 2, 5]
  color: Red
  values: [100]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 22:32:34