【问题标题】:Pandas: is it possible to read CSV with multiple symbols delimiter?Pandas:是否可以使用多个符号分隔符读取 CSV?
【发布时间】:2020-05-25 15:56:31
【问题描述】:

我有一个分隔文件,其中分隔符是 3 个符号:'*'

pd.read_csv(file, delimiter="'*'")

引发错误:

"delimiter" must be a 1-character string

由于某些行可以包含 *-symbol,我不能使用不带引号的星号作为分隔符。这就是为什么我认为剥离线在这里没有帮助。

是否可以解析包含超过 1 个符号的分隔符的分隔文件?

【问题讨论】:

  • 在使用 pandas 读取文件之前,您可以使用正则表达式将 '*' 的每个实例替换为逗号或其他单字符分隔符。
  • 我也在考虑这个,但这不是我想要的,因为“逗号”或其他单个字符也可以是文件的一部分。然后我会遇到另一个问题,即某些行将被错误解析(比预期的元素多等),因为该字符存在于该行中。
  • 避免这种情况的常用方法是为字符串添加一个引号字符(我认为您也可以使用正则表达式添加一个)。使用制表符作为分隔符怎么样?
  • @Andy_101 这对我没有帮助,因为我知道我同时拥有“'”和“*”符号。从上面提到的答案来看,它看起来像“或”运算符。

标签: python python-3.x pandas csv


【解决方案1】:

输入

as'*'asfg'*'agga
as'*'asfg'*'agga
as'*'asfg'*'agga

输出

>>> pd.read_csv("testing.csv",sep="\'\*\'")
   as  asfg  agga
0  as  asfg  agga
1  as  asfg  agga

这应该可以解决您的问题。

【讨论】:

  • 它会引发同样的错误 - “分隔符”必须是 1 个字符的字符串
  • 您使用的是哪个 python 或 pandas 版本,因为对我来说这是完美的。
  • 尝试分享您的一些输入数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-20
  • 2018-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多