【发布时间】:2019-10-26 06:38:52
【问题描述】:
我需要在 Pandas 中打开一个file.csv。为此,我可以使用pd.read_csv('file.csv')。
问题是,文件格式不正确:
a b c
1 2 5
3 4 6
第一个分隔符是 1 个空格,第二个分隔符是 3 个空格。
我在 pandas 文档中找不到关于如何做到这一点的方法。
我可以预先对文件进行预处理,将其转换为 StringIO 并使用 pandas 打开,但对我来说这似乎很hackish。
with open('file.csv', 'r') as f:
text = f.read()
text = text.replace(' ', ' ')
text = StringIO(text)
df = pd.read_csv(text)
我怎样才能直接用 pandas 做到这一点?
【问题讨论】:
-
请改用
delim_whitespace=True。 More info -
sep='\s+'有什么好处? -
sep的正则表达式参数调用速度较慢的 python 解析器。我不确定delim_whitespace是否也这样做,但它肯定更惯用。 -
确实更惯用。谢谢