【发布时间】:2022-01-14 03:42:36
【问题描述】:
我有一个保存为 data.csv 的 CSV,看起来像这样,有两列:
Column1|Column2
Titleone|1.5
Title|two|2.5
Title3|3.6
CSV 中的第三行数据包含一个管道运算符,|这导致了错误。我需要一种方法来读取管道运算符作为第三行的 Column1 值的一部分。当我运行pd.read_csv("data.csv", sep = "|") 时出现错误:ParserError: Error tokenizing data. C error: Expected 2 fields in line 3, saw 3
我无法使用,on_bad_lines='skip',因为我使用的是旧版本的 Pandas。这是我发现的一种解决方法,似乎是部分解决方案:
col_names = ["col1", "col2", "col3"]
df = pd.read_csv("data.csv", sep = "|", names = col_names)
【问题讨论】:
-
您的错误看起来像是来自
Title|two|2.5。 “预期 2 个字段,得到 3 个”,因为它读取 field1 = “Title”,field2 = “two”,field3 = 2.5。 -
为什么不将数据作为单列读取,然后再进行拆分 ->
pd.read_csv(squeeze=True) -
是的,csv 中的第三行或标题之外的第二行