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

如何用Pandas自动命名动态新增的拆分列(前缀+序号)

动态生成列名处理Pandas维度列拆分需求

需求:将示例CSV读取为Pandas DataFrame后,拆分Dimensions列并提取各分段的首个值作为新列,要求自动以data_+序号(如data_0、data_1)的格式命名新增列,无需手动指定列名,适配列数量变化的场景。

示例CSV内容

Name,Dimensions,Color
Chair,!12:88:33!!9:10:50!!40:23:11!,Red
Table,!9:10:50!!40:23:11!,Brown
Couch,!40:23:11!!12:88:33!,Blue

原处理代码(需手动指定列名)

import pandas as pd

df = pd.read_csv("./data.csv")

df[["first","second","third"]] = (df['Dimensions']
               .str.strip('!')
               .str.split('!{1,}', expand=True)
               .apply(lambda x: x.str.split(':').str[0]))
               
df = df.drop("Dimensions", axis=1)

修改后的代码(自动生成列名)

import pandas as pd

df = pd.read_csv("./data.csv")

# 拆分并提取各分段首个值,得到临时DataFrame
temp_df = (df['Dimensions']
           .str.strip('!')
           .str.split('!{1,}', expand=True)
           .apply(lambda x: x.str.split(':').str[0]))

# 生成动态列名:data_0、data_1...
temp_df.columns = [f'data_{i}' for i in range(temp_df.shape[1])]

# 合并临时DataFrame到原数据,删除原Dimensions列
df = pd.concat([df.drop("Dimensions", axis=1), temp_df], axis=1)

代码说明

  1. 先处理Dimensions列,拆分后提取首个值得到临时DataFrame,此时列名是默认的0、1、2...
  2. 通过列表推导式生成data_+序号格式的列名,数量匹配临时DataFrame的列数
  3. 使用pd.concat合并原数据(已删除Dimensions列)和临时DataFrame,保证列名自动适配任意数量的拆分结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 05:36:22