如何在以破管“¦”作为分隔符的数据集中使用read_csv???

How to use read_csv in dataset with broken pipe "¦" as seprator???

我有 10 个 10mb 到 8gb 的文件数据集,我正在尝试读取一个大小为 8gb 的数据集 txt,由于“¦”(断管)我无法读取...几乎所有文件的大小都大于200mb 有同样的问题,最小的文件有 "normal" 管道( | )。

密码是:

p = 0.001  # % of lines

df = pd.read_csv("protectedSearch_GPRS.txt", sep='¦', 
                    skiprows= lambda i: i>0 and random.random() > p)


     ParserWarning: Falling back to the 'python' engine because the separator 
     encoded in utf-8 is > 1 char long, and the 'c' engine does not support such 
     separators; you can avoid this warning by specifying engine='python'.
       after removing the cwd from sys.path.

那么它到底是什么?这是一个错误吗?如何处理这个问题?我想用 2 天时间解决这个问题,但我真的不知道还能做什么。

非常感谢您,对于任何语言错误,我们深表歉意。

不是错误。 Pandas C 引擎仅支持 single-character 拆分。破管道在技术上是两个 UTF-8 字符,因此错误 character is > 1

例如:

len('¦'.encode('utf-8'))
Out[24]: 2
len(','.encode('utf-8'))
Out[25]: 1

如果您想取消警告,请明确说明您希望使用哪个引擎:

df = pd.read_csv(
      "protectedSearch_GPRS.txt", 
      sep='¦', 
      skiprows=lambda i: i > 0 and random.random() > p,
      engine='python'
)

使用 engine=python 启用 multi-string/regex 拆分匹配。