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

解决Pandas导出DataFrame至CSV后数据全在一列的问题

解决你的CSV读取与导出列对齐问题

看起来你的代码有几个关键问题,导致导出后Excel里所有数据都挤在一列,咱们一步步来修复:

1. 先修复pd.read_csv的参数错误

你当前的读取代码:

readfile = pd.read_csv('C:\\xx\\xx\\xx, xx.csv','rb')

这里的第二个参数'rb'是完全错误的——pd.read_csv的第二个参数是分隔符sep,而不是文件打开模式('rb'是open()函数的参数)。Pandas会自动处理文件的打开,不需要你手动指定这个,这直接导致Pandas用'rb'作为分隔符解析文件,把每个字符都拆成了单独的“列”,这就是你打印时看到每个字母都分开的核心原因!

先把这行改成:

readfile = pd.read_csv('C:\\xx\\xx\\xx, xx.csv')  # 去掉多余的'rb'参数

2. 正确设置分隔符,解析出多列

从你打印的数据来看,原始文件是用**空白字符(空格/制表符混合)**分隔的,所以需要告诉Pandas用任意数量的空白字符作为分隔符:

方案一:用delim_whitespace=True(推荐)

这个参数等价于sep='\s+',专门用于处理空白分隔的文件,稳定性更好:

readfile = pd.read_csv('C:\\xx\\xx\\xx, xx.csv', delim_whitespace=True)

方案二:用sep='\s+'加engine='python'

如果用sep='\s+'报错,大概率是默认的C引擎不支持正则分隔符,加上engine='python'就能解决:

readfile = pd.read_csv('C:\\xx\\xx\\xx, xx.csv', sep='\s+', engine='python')

修改后可以用print(readfile.head())检查一下,确认数据已经分成了正确的多列。

3. 正确导出为Excel可识别的Tab分隔文件

你的导出逻辑没问题,但可以简化(直接传路径给to_csv,不用手动open文件):

readfile.to_csv('T:\\xx\\xx\\xx.csv', index=False, sep='\t')

这样导出的是Tab分隔的文件,Excel打开时会自动识别Tab作为列分隔符,把数据分到对应的列里。

额外提醒

  • 你的输入文件路径里有个逗号xx, xx.csv,确认这是文件名的一部分,不是输入错误哦!
  • 如果导出后Excel还是没自动拆分列,可以手动打开Excel,用「数据」选项卡的「自文本/CSV」功能,手动选择Tab作为分隔符导入。

最后,完整的修正代码:

import pandas as pd

# 正确读取文件,用空白字符分隔
readfile = pd.read_csv('C:\\xx\\xx\\xx, xx.csv', delim_whitespace=True)

# 导出为Tab分隔文件,去掉索引
readfile.to_csv('T:\\xx\\xx\\xx.csv', index=False, sep='\t')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:26:25