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

如何将不同列数的异构记录拆分到不同DataFrame中

拆分不同列数记录的实现方法

如果你的原始数据以+作为列分隔符,不同行拆分后列数不统一,不要直接用pd.read_csv指定sep="+"读取(会触发列数不匹配报错、数据错位),按以下步骤处理即可拆分出两个独立DataFrame:

  • 先把所有数据按整行读入,存为只有1列的临时DataFrame,列名可以自定义比如raw_content
  • 逐行计算按+拆分后的字段数量
  • 按字段数量筛选对应行,再拆分展开为多列,得到结构一致的独立DataFrame

完整参考代码:

import pandas as pd

# 整行读入原始数据,不要指定+为分隔符
# 如果是本地文本文件,取消注释下面这行替换路径即可
# raw_df = pd.read_csv("你的数据文件路径", sep="\n", header=None, names=["raw_content"])

# 计算每行按+拆分后的列数
raw_df["field_num"] = raw_df["raw_content"].str.split("+").str.len()

# 筛选拆分后为4列的记录,展开为标准结构DataFrame
df_4cols = raw_df[raw_df["field_num"] == 4]["raw_content"].str.split("+", expand=True)
# 可根据实际业务含义给列重命名,示例如下
# df_4cols.columns = ["序号", "名称", "数值", "备注"]

# 筛选拆分后为5列的记录,展开为标准结构DataFrame
df_5cols = raw_df[raw_df["field_num"] == 5]["raw_content"].str.split("+", expand=True)
# 可根据实际业务含义给列重命名,示例如下
# df_5cols.columns = ["序号", "名称", "类型", "数值", "备注"]

补充注意点:

  • 如果后续需要处理其他列数的异常行,复用相同逻辑,筛选field_num对应数值的行拆分即可
  • 拆分完成后可以根据需要做字段类型转换,比如把数字类字段从默认的字符串格式转为整数、浮点数格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 05:00:44