CSV文件列读取异常:Jupyter/Excel中如何拆分合并列恢复原格式?
嘿,这个问题我之前也碰到过!本质是pandas读取文件时用错了分隔符,导致所有列被当成了一列。我给你一步步解决:
1. 最可能的原因:用错了读取函数
你现在用的是pd.read_table(),这个函数默认以**制表符(\t)**作为列分隔符,但你的文件是标准CSV(逗号分隔),这就是列合并的根源!Numbers和Excel会自动识别CSV的逗号分隔符,所以显示正常。
直接改用pd.read_csv()就能解决,它默认就是逗号分隔:
%matplotlib inline import matplotlib import numpy as np import matplotlib.pyplot as plt import pandas as pd # 替换read_table为read_csv,适配CSV格式 data = pd.read_csv("filename.csv", encoding="utf-8") print(data.columns)
2. 如果还是有问题(比如字段包含逗号)
要是你的TEXT这类列里本身有逗号(比如新闻内容里的标点),可能会导致分隔混乱。这时候可以显式指定分隔符和引号规则,让pandas忽略引号内的逗号:
data = pd.read_csv("filename.csv", encoding="utf-8", sep=',', quotechar='"')
这里quotechar='"'表示用双引号包裹的内容是一个完整字段,里面的逗号不会被当成分隔符。
3. 排查分隔符的终极方法
要是不确定文件的实际分隔符,可以先手动读取第一行看看:
with open("filename.csv", 'r', encoding='utf-8') as f: print(f.readline()) # 打印列名行,看实际是用什么分隔的
比如如果输出是SEARCH_ROW,PUBLICATION,DATE,...,那就是逗号分隔;如果是制表符分隔,会看到列名之间有明显的空格间隔。然后根据结果调整sep参数即可。
内容的提问来源于stack exchange,提问作者pmwel
相关产品推荐
相关产品推荐

