解决 Pandas 数据框中带引号的 csv 文件

Solving csv files with quoted semicolon in Pandas data frame

所以我面临以下问题:

我有一个 ; 分隔的 csv,其中 ; 包含在引号中,这会破坏数据。

很喜欢abide;acdet;"adds;dsss";acde

"adds;dsss" 中的 ;" dsss" 移动到下一行,并破坏了我正在编写的 ETL 模块的结果。我的 ETL 从互联网上获取这样的 csv,然后对其进行转换(首先将其加载到 Pandas 数据框中,进行预处理然后保存),然后将其加载到 sql 服务器中。但是损坏的文件正在破坏 sql 服务器架构。

是否有任何解决方案可以与 Pandas 数据框结合使用,使我可以在读取 (pd.read_csv) 或写入 (pd.to_csv) 期间解决此问题(或两者)部分使用 Pandas 数据框?

pd.read_csvsep 参数允许您指定在 CSV 文件中使用哪个字符作为分隔符。它的默认值为 ,。将其更改为 ; 是否可以解决您的问题?

让我们试试:

from io import StringIO
import pandas as pd

txt = StringIO("""abide;acdet;"adds;dsss";acde""")
df = pd.read_csv(txt,sep=';',header=None)
print(df)

输出数据帧:

       0      1          2     3
0  abide  acdet  adds;dsss  acde

您可能需要告诉 reader 某些字段可能会被引用:

pd.read_csv(your_data, sep=';', quotechar='"')