在Pandas中拆分含|分隔符的列并写入已有Excel指定列
解决方法:用Pandas拆分合并列并写入指定列
这事儿其实用Pandas的str.split()方法就能轻松搞定,步骤很清晰,我给你一步步拆解:
1. 读取目标Excel文件
首先把已有Excel文件加载到DataFrame中:
import pandas as pd # 读取你的Excel文件 df3 = pd.read_excel('type_primary_data.xlsx')
2. 拆分合并列并赋值到指定列
核心操作是用str.split('|', expand=True)把col1按|拆分成独立三列,再直接映射到你需要的指定列。这里假设你要存入的列名为col_id、col_ratio、col_result,你可以换成实际业务对应的列名:
写法一:分步拆分(逻辑更清晰)
# 拆分col1,生成三列临时数据 split_result = df3['col1'].str.split('|', expand=True) # 将拆分后的每一列赋值给目标列 df3['col_id'] = split_result[0] df3['col_ratio'] = split_result[1] df3['col_result'] = split_result[2]
写法二:一步到位(代码更简洁)
如果确认col1的有效数据都是|分隔的三个值,可以直接一次性赋值:
# 直接将拆分结果映射到指定列 df3[['col_id', 'col_ratio', 'col_result']] = df3['col1'].str.split('|', expand=True)
3. 保存修改后的文件
最后把修改后的DataFrame存回Excel(不想覆盖原文件的话,换个文件名即可):
# 保存时加index=False,避免把Pandas的索引列写入Excel df3.to_excel('type_primary_data.xlsx', index=False)
一些实用提示
- 如果指定列还不存在于
df3中,Pandas会自动创建这些列,无需额外操作 - 原始数据中的
nan行,拆分后对应的目标列也会是nan,完全匹配原始状态 - 要确保
col1的有效数据都是|分隔的三个值,否则拆分后列数不匹配会报错
内容的提问来源于stack exchange,提问作者kenneth_V
相关产品推荐
相关产品推荐

