【问题标题】:How to specify custom parser in Pandas.read_csv? [duplicate]如何在 Pandas.read_csv 中指定自定义解析器? [复制]
【发布时间】: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=TrueMore info
  • sep='\s+' 有什么好处?
  • sep 的正则表达式参数调用速度较慢的 python 解析器。我不确定delim_whitespace 是否也这样做,但它肯定更惯用。
  • 确实更惯用。谢谢

标签: python pandas csv


【解决方案1】:

你试过pd.read_csv('file.csv', sep='\s+')吗?

【讨论】:

  • 该死,我需要学习正则表达式。非常感谢
猜你喜欢
  • 1970-01-01
  • 2020-09-01
  • 1970-01-01
  • 2018-02-28
  • 2014-12-01
  • 2014-03-27
  • 1970-01-01
  • 2016-01-13
  • 2019-01-12
相关资源
最近更新 更多