在熊猫数据框中使用带引号的分号解决csv文件

时间:2018-04-09 12:41:14

标签: python-3.x pandas csv data-cleaning quoting

所以我面临以下问题:

我有一个;分开的csv,有;用引号括起来,这会破坏数据。 所以喜欢 遵守; ACDET;"添加; DSSS&#34 ;; ACDE

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

是否有任何解决方案可以与熊猫数据框架结合使用,这使我可以在使用熊猫数据帧读取(pd.read_csv)或编写(pd.to_csv)(或两者)部分时解决此问题? / p>

3 个答案:

答案 0 :(得分:1)

试试吧:

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

答案 1 :(得分:1)

您可能需要告诉读者可能会引用一些字段:

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

答案 2 :(得分:0)

sep pd.read_csv参数允许您指定在CSV文件中用作分隔符的字符。其默认值为,。将其更改为;可以解决您的问题吗?