Python pandas 分隔符打印错误 - 双号
Python pandas delimiter misprint - double sign
这是我打开文件的代码:
df = pd.read_csv(path_df, delimiter='|')
我收到错误:标记化数据时出错。 C 错误:第 13571 行应有 5 个字段,结果为 6
当我检查这一行时,我发现有一个印刷错误,有 3 个符号“|||”而不是一个。我更愿意将双重和三重标志视为一个。可能还有其他解决方案。
我该如何解决这个问题?
另一种定义分隔符的方法是在读取 pandas.
中的 CSV 时使用 sep
df = pd.read_csv(path_df, sep=r'\|+', engine='python')
每当您注意到 'C error' 时,它需要通过在参数中指定 engine='python'
来强制使用 python 引擎。
使用正则表达式分隔符 [|]+
- 一个或多个 |
:
import pandas as pd
temp=u"""a|b|c
ss|||s|s
t|g|e"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
df = pd.read_csv(pd.compat.StringIO(temp), sep="[|]+",engine='python')
print (df)
a b c
0 ss s s
1 t g e
我怀疑这是由于文件写入不正确造成的,如果该字段应该包含值“|”但是不知何故写错了(csv通常会写这样一行1|2|3|"|"|5
),但是如果写错了没有任何转义就会导致这个问题。
在那种情况下,我认为您无法使用 pandas 解决此问题,因为问题的 csv 格式不正确。
如果是一次性的,您可以先编辑文件,也许要替换所有“|||”用“||” - 但同样可能会产生意想不到的后果。我以前遇到过这个问题,我认为没有比手动编辑文件更好的方法了(至少 pandas 给了你要查看的行号!)
另一方面,如果它真的只是一个重复的字符打印错误,那么其他答案也可以。
这是我打开文件的代码:
df = pd.read_csv(path_df, delimiter='|')
我收到错误:标记化数据时出错。 C 错误:第 13571 行应有 5 个字段,结果为 6
当我检查这一行时,我发现有一个印刷错误,有 3 个符号“|||”而不是一个。我更愿意将双重和三重标志视为一个。可能还有其他解决方案。
我该如何解决这个问题?
另一种定义分隔符的方法是在读取 pandas.
中的 CSV 时使用sep
df = pd.read_csv(path_df, sep=r'\|+', engine='python')
每当您注意到 'C error' 时,它需要通过在参数中指定 engine='python'
来强制使用 python 引擎。
使用正则表达式分隔符 [|]+
- 一个或多个 |
:
import pandas as pd
temp=u"""a|b|c
ss|||s|s
t|g|e"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
df = pd.read_csv(pd.compat.StringIO(temp), sep="[|]+",engine='python')
print (df)
a b c
0 ss s s
1 t g e
我怀疑这是由于文件写入不正确造成的,如果该字段应该包含值“|”但是不知何故写错了(csv通常会写这样一行1|2|3|"|"|5
),但是如果写错了没有任何转义就会导致这个问题。
在那种情况下,我认为您无法使用 pandas 解决此问题,因为问题的 csv 格式不正确。
如果是一次性的,您可以先编辑文件,也许要替换所有“|||”用“||” - 但同样可能会产生意想不到的后果。我以前遇到过这个问题,我认为没有比手动编辑文件更好的方法了(至少 pandas 给了你要查看的行号!)
另一方面,如果它真的只是一个重复的字符打印错误,那么其他答案也可以。