gpt4 book ai didi

python - 值包含分隔符的 ParserError

转载 作者:行者123 更新时间:2023-12-01 07:04:45 26 4
gpt4 key购买 nike

我有一个如下所示的 CSV:

"ID"|"Description"|"Date"
"1234"|"good text"|"2019-10-12"
"9012"|"bad"text|here""|"2018-01-12"

我正在尝试写入一个新的 CSV,如下所示:

+--------+------------------+--------------+
| "ID" | "Description" | "Date" |
+--------+------------------+--------------+
| "1234" | "good text" | "2019-10-12" |
| "9012" | "bad text|here" | "2018-01-12" |
+--------+------------------+--------------+

问题在于分隔符“|”包含在描述值之一中,即“bad|text”。所以当我运行类似的东西时:

df = pd.read_csv(csv_file, encoding='utf-16', sep='|')

我明白了:

pandas.errors.ParserError: Error tokenizing data. C error: Expected 3 fields in line 3, saw 4

我看到的唯一解决方案是跳过包含分隔符的行,但显然我想要它们:

Python Pandas Error tokenizing data

有什么建议吗?

请注意,文件编码为 UTF-16。

最佳答案

这是解决方案,关键 engine='python-fwf'、正则表达式分隔符和一些清理。

import pandas as pd


df = pd.read_csv('file_in.csv', engine='python-fwf', sep='"|"', quotechar='"')
df.to_csv('file_out.csv', sep='|', index=False)

输出:

print(df)
ID Description Date
0 1234 good text 2019-10-12
1 9012 bad" text here ""|"2018-01-12

file_out.csv:

ID|Description|Date
1234|good text|2019-10-12
9012|"bad"" text"|"here """"|""2018-01-12"

关于python - 值包含分隔符的 ParserError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58490728/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com