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

读取文本文件创建Pandas DataFrame并转CSV遇问题求助

解决Pandas读取TXT文件仅生成一列的问题

问题根源

你的TXT文件使用空格作为字段分隔符,但Pandas默认以逗号为分隔符,导致整行被识别为单个列;同时第一行的列名格式是column1:Name这类带标识的结构,需要提取出实际可用的列名(Name、Age)。

解决方案步骤

  • 指定正确的分隔符:用sep参数告知Pandas以空格(或任意空白字符)拆分字段
  • 处理列名:从第一行的columnX:列名格式中提取出真实列名

具体代码实现

假设你的input.txt内容如下:

column1:Name column2:Age
raju 20
kanu 24

执行以下代码即可解决问题:

import pandas as pd

# 读取文件并处理列名
with open('input.txt', 'r') as f:
    # 提取第一行的列名部分
    header = f.readline().strip()
    # 拆分后提取:后面的真实列名
    columns = [item.split(':')[1] for item in header.split()]

# 读取数据行,用任意空白字符作为分隔符,跳过第一行列名行
df = pd.read_csv('input.txt', sep='\s+', skiprows=1, names=columns)

# 转换为CSV文件(不保留索引列)
df.to_csv('output.csv', index=False)

验证生成的CSV内容

最终output.csv会被正确拆分为两列:

Name,Age
raju,20
kanu,24

简化写法(列名格式固定时适用)

如果确认列名行的分隔符是单个空格,也可以直接读取后重命名列:

import pandas as pd

df = pd.read_csv('input.txt', sep=' ')
# 批量重命名列
df.columns = [col.split(':')[1] for col in df.columns]
df.to_csv('output.csv', index=False)

注意:如果TXT中字段间存在多个空格,使用sep='\s+'更稳妥,能避免生成多余的空列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 09:20:21