Pandas列拆分报错:用if-else适配不同列数的CSV数据集
解决Pandas列拆分的条件执行问题
核心方案
通过判断目标列SName是否存在于DataFrame的列列表中,决定是否执行拆分逻辑:
- 若列存在:执行拆分并保存处理后的文件
- 若列不存在:直接保存原文件
修改后的代码
import pandas as pd # 读取CSV文件 df = pd.read_csv("your_input_file.csv") # 检查SName列是否存在 if 'SName' in df.columns: # 拆分SName列为4列,按实际分隔符调整(这里用逗号示例) df[['Col1', 'Col2', 'Col3', 'Col4']] = df['SName'].str.split(',', expand=True) # 按需处理拆分后可能出现的空值,比如填充默认值 # df[['Col1', 'Col2', 'Col3', 'Col4']] = df[['Col1', 'Col2', 'Col3', 'Col4']].fillna('') # 无论是否执行拆分,最终保存文件 df.to_csv("your_output_file.csv", index=False)
关键说明
- 替换代码中的
your_input_file.csv和your_output_file.csv为实际文件路径 - 拆分时的分隔符(示例中的逗号)请根据实际数据集调整
- 如果拆分后列数可能不足4列,
expand=True会自动用NaN填充缺失的列,可按需添加fillna处理空值
内容的提问来源于stack exchange,提问作者Kenny
相关产品推荐
相关产品推荐

