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

如何将Pandas分组后的名称列表拆分为最多2列?

Pandas分组拆分列的简便实现方案

原始数据构造

先构造示例DataFrame用于测试:

import pandas as pd

df = pd.DataFrame({
    'Type': ['Cheese', 'Cheese', 'Cheese', 'Bread', 'Bread', 'Pepper'],
    'Name': ['Mozarella', 'Cheddar', 'Pepper Jack', 'Sourdough', 'Rye', 'Green']
})

无需自定义Lambda的简便实现

利用组内序号标记+透视表的方式,完全避免自定义Lambda函数,步骤如下:

  1. 给每个Type分组内的行生成从0开始的序号,对应名称的先后顺序:
df['group_seq'] = df.groupby('Type').cumcount()
  1. 透视表转换,将序号列转为目标列,并处理空值:
result = (df.pivot(index='Type', columns='group_seq', values='Name')
          .rename(columns={0: 'Name_primary', 1: 'Name_alternative'})
          .fillna('')
          .reset_index())

最终结果

执行后得到的结果如下:

TypeName_primaryName_alternative
BreadSourdoughRye
CheeseMozarellaCheddar
PepperGreen

方案说明

  • 原表已排序,cumcount()生成的序号正好对应名称的先后顺序,直接取前两个即可
  • 透视表自动将多行转成横向结构,空值用空字符串填充符合需求
  • 全程无需编写自定义Lambda逻辑,代码简洁且易读

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 16:35:23