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

Pandas如何拆分逗号分隔多值列 匹配对应ID创建新df

Pandas拆分逗号分隔列并匹配对应ID的实现方法

你可以直接使用pandas内置方法完成需求,无需安装第三方依赖,具体实现如下:

  • 首先构造示例原始数据(你可以替换成自己的真实df):
import pandas as pd

# 原始示例数据
df = pd.DataFrame({
    'A': ['a', 'b', 'c'],
    'B': ['1,3,5', '2,5,7', '8,13,18'],
    'C': ['id_1', 'id_2', 'id_3']
})
  • 核心处理逻辑:先拆分B列的逗号分隔值为列表,再将列表展开为多行,自动匹配对应C列的ID,最后整理成目标列结构:
new_df = df.assign(
    val_col = df['B'].str.split(',')  # 按逗号拆分B列为值列表
).explode(
    'val_col'  # 将列表值展开为独立行,索引自动和原行对齐
).rename(
    columns={'C': 'id_col'}  # 原C列重命名为目标列名id_col
)[['id_col', 'val_col']]  # 仅保留需要的两列
  • 如果需要val_col为数值格式而非字符串,补充一行类型转换即可:
new_df['val_col'] = new_df['val_col'].astype(int)

执行后打印new_df即可得到你需要的目标结构:

id_colval_col
0id_11
0id_13
0id_15
1id_22
1id_25
1id_27
2id_38
2id_313
2id_318

兼容说明:如果你使用的pandas版本低于1.3.0,可以使用如下写法,效果完全一致:

new_df = df[['C']].rename(columns={'C':'id_col'}).assign(
    val_col=df['B'].str.split(',')
).explode('val_col')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 18:39:55