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

Pandas按列表执行groupby分组的运算逻辑疑问

Pandas按列表分组执行逻辑说明

你给出的示例代码如下:

import pandas as pd
import numpy as np

rng = np.random.RandomState(0)
df = pd.DataFrame({'key': ['A', 'B', 'C', 'A', 'B', 'C'],
'data1': range(6),
'data2': rng.randint(0, 10, 6)},
columns = ['key', 'data1', 'data2'])
L = [0, 1, 0, 1, 2, 0]
print(df); print(df.groupby(L).sum())

核心分组规则

DataFrame.groupby() 传入和原表行数相等的外部序列时,会按行位置一一对应绑定分组标签,标签相同的行将被归为同一组执行后续聚合操作。

分组映射对应关系

原表共6行,每行索引和分组标签L的对应关系如下:

  • 索引0行 → L[0]=0 → 归入0组
  • 索引1行 → L[1]=1 → 归入1组
  • 索引2行 → L[2]=0 → 归入0组
  • 索引3行 → L[3]=1 → 归入1组
  • 索引4行 → L[4]=2 → 归入2组
  • 索引5行 → L[5]=0 → 归入0组

聚合计算过程

本次聚合操作是sum()求和,非数值类型的key列会自动被排除出计算,仅统计data1、data2两列的总和:

  1. 0组包含行:索引0、2、5
    • data1求和:0 + 2 + 5 = 7
    • data2求和:5 + 3 + 9 = 17
  2. 1组包含行:索引1、3
    • data1求和:1 + 3 = 4
    • data2求和:0 + 3 = 3
  3. 2组包含行:仅索引4
    • data1求和:4
    • data2求和:7

上述计算结果和你给出的运行输出完全对应。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 08:00:02