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

求Python实现按|拆分列并以拆分内容为新列名的代码

解决方案

情况1:拆分后的列名来自原始列的第一行数据

如果你的原始数据中,目标列的第一行是拆分后的列名、后续行是对应数据,用Pandas可以这样处理:

import pandas as pd

# 读取数据(示例为CSV,可替换为你的数据源)
df = pd.read_csv('your_data.csv')

# 按|拆分目标列,生成多列
split_cols = df['目标列名'].str.split('|', expand=True)

# 将第一行拆分结果设为新列名
split_cols.columns = split_cols.iloc[0]

# 移除原表头行并重置索引
final_df = split_cols[1:].reset_index(drop=True)

# 查看结果
print(final_df)

情况2:拆分内容为「键:值」格式,需将键设为列名

如果目标列的内容是类似键1:值1|键2:值2的格式,要把键作为新列名、值作为对应列的数据:

import pandas as pd

df = pd.read_csv('your_data.csv')

# 拆分每一行转为字典,再转为DataFrame
final_df = df['目标列名'].apply(
    lambda x: dict(item.split(':') for item in x.split('|'))
).apply(pd.Series)

print(final_df)

纯Python处理非DataFrame数据

如果不用Pandas,处理列表形式的原始数据:

# 原始数据示例
raw_data = [
    "姓名|年龄|性别",
    "张三|25|男",
    "李四|30|女"
]

# 提取表头
headers = raw_data[0].split('|')

# 处理数据行
processed_rows = [dict(zip(headers, row.split('|'))) for row in raw_data[1:]]

print(processed_rows)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 16:05:26