pandas.read_csv 不在分号分隔符处对数据进行分区

Posted

技术标签:

【中文标题】pandas.read_csv 不在分号分隔符处对数据进行分区【英文标题】:pandas.read_csv not partitioning data at semicolon delimiter 【发布时间】:2017-04-28 16:24:00 【问题描述】:

我很难将csv 文件正确加载到熊猫数据框。该文件是csv 保存在 MS Excel 中,其中的行如下所示:

Montservis, s.r.o.;"2 012";"-14.98";"-34.68";"- 11.7";"0.02";"0.09";"0.16";"284.88";"10.32";"

我正在使用

filep="file_name.csv"
raw_data = pd.read_csv(filep,engine="python",index_col=False, header=None, delimiter=";")

(我尝试了 read_csv 参数的几种组合和替代方案,但没有任何成功.....我也尝试过 read_table )

我想在我的数据框中看到每个分号分隔的值将在单独的列中(我知道read_csv 以这种方式工作(?))。

不幸的是,我总是将整行放在数据框的第一列中。所以基本上在加载后我有很多行,但只有一列(如果我也算索引,则为两列)

我在此处放置了示例: datafile

欢迎任何想法。

【问题讨论】:

您不能将文件作为普通 csv 导出吗?即没有引号和逗号?目前引号内有分号,很难知道如何正确分隔列 我也试过不带引号(只是在excel中用空格替换了“),但没有帮助。 【参考方案1】:

添加quoting = 3。 3 代表QUOTE_NONE 参考this。

   raw_data = pd.read_csv(filep,engine="python",index_col=False, header=None, delimiter=";", quoting = 3)

这将给出[7 rows x 23 columns] 数据框

【讨论】:

完美,谢谢。那解决了它。但是结果输出不是很好,单元格中的数据用双引号括起来,例如“2012”。我可以生活/照顾它,所以这不是大问题。谢谢!【参考方案2】:

问题是封闭的字符可以被\ 字符忽略。

raw_data = pd.read_csv(filep,engine="python",index_col=False, header=None, delimiter='\;')

【讨论】:

谢谢这个答案,和@Marlon Abeykoon 的作品一样! 谢谢,我发现了这个

以上是关于pandas.read_csv 不在分号分隔符处对数据进行分区的主要内容,如果未能解决你的问题,请参考以下文章

使用 pandas.read_csv 读取带有空格的 CSV 文件作为千位分隔符

如何使用 pandas.read_csv 在双引号之间读取带有千位分隔符的数字 [重复]

对于不规则的分隔符,如何使 pandas read_csv 中的分隔符更灵活 wrt 空格?

尾随分隔符使熊猫 read_csv 感到困惑

pandas中分隔符由多个字符组成

pandas.read_csv参数整理