解决 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_csv
的 sep
参数允许您指定在 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='"')
所以我面临以下问题:
我有一个 ;
分隔的 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_csv
的 sep
参数允许您指定在 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='"')