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 在双引号之间读取带有千位分隔符的数字 [重复]