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

Python Pandas迭代拆分多列并自动生成命名新列的解决方案

批量拆分多列实现方案

核心逻辑是预先定义所有需要拆分的列,遍历拆分后自动命名新列,再合并回原表,无需针对单列手动编码。

完整代码

import pandas as pd

# 原始DataFrame
dfx = pd.DataFrame({
        'name': ['alex','bob','jack'],
        'age': ["0,26,4","1,25,4","5,30,2"],
        'job': ["x,abc,0","y,xyz,1","z,pqr,2"],
        'gender': ["0,1","0,1","0,1"]            
    })

# 配置需要拆分的列,新增拆分列只需修改此列表即可
cols_to_split = ['age', 'job', 'gender']

split_result = []
for col in cols_to_split:
    # 按逗号拆分列,自动适配拆分后的字段数量
    tmp = dfx[col].str.split(',', expand=True)
    # 自动生成新列名:原列名+序号
    tmp.columns = [f"{col}{i+1}" for i in tmp.columns]
    split_result.append(tmp)

# 合并原表与所有拆分后的列
df_final = pd.concat([dfx] + split_result, axis=1)

# 可选:调整列顺序,使原列与对应拆分列相邻,匹配需求输出格式
col_order = ['name']
for col in cols_to_split:
    col_order.append(col)
    col_order.extend([c for c in df_final.columns if c.startswith(col) and c != col])
df_final = df_final[col_order]

# 输出结果
print(df_final)

关键特性

  • 适配任意数量的待拆分列,仅需修改cols_to_split列表
  • 自动适配每列拆分后的字段数量,无需硬编码下标,例如gender拆分为2列、age拆分为3列可自动处理
  • 列顺序可灵活调整,匹配预期输出格式
    运行后输出结果与你提供的期望格式完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 21:15:06