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

如何用Pandas内置函数按规则为DataFrame生成C列分组?

使用Pandas内置函数生成目标C列的解决方案

可以通过Pandas的groupby结合transform方法实现需求,以下是具体步骤和代码示例:

核心逻辑

针对A列的每个分组:

  • 若分组内B列包含多个不同值,C列统一取该分组下B列的首个值;
  • 若分组内B列值全部相同,C列直接复制B列对应值。

代码实现

1. 准备示例数据

import pandas as pd

# 模拟图片中的数据结构
df = pd.DataFrame({
    'A': ['X', 'X', 'Y', 'Y', 'Z', 'Z'],
    'B': ['B1', 'B2', 'B3', 'B3', 'B4', 'B5']
})

2. 生成C列

# 利用分组变换实现规则
df['C'] = df.groupby('A')['B'].transform(
    lambda x: x.iloc[0] if x.nunique() > 1 else x
)

3. 查看结果

运行后输出的DataFrame如下:

A   B   C
0  X  B1  B1
1  X  B2  B1
2  Y  B3  B3
3  Y  B3  B3
4  Z  B4  B4
5  Z  B5  B4

代码说明

  • groupby('A')['B']:按A列分组,聚焦每个分组下的B列数据;
  • transform:将分组处理后的结果映射回原DataFrame,保证行数与原数据一致;
  • x.nunique():统计分组内B列的唯一值数量,判断是否存在多分组情况;
  • x.iloc[0]:当存在多分组时,取该分组下B列的第一个值作为C列统一值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:35:25