【发布时间】:2015-08-21 01:14:50
【问题描述】:
我有一个 Python 脚本,可以将 Pandas 数据帧写入 CSV 文件 可视化。该脚本调用 .to_csv() 方法,但每一行 结果 CSV 用引号引起来,这会阻止我的脚本的其余部分返回 正确的输出。这个数据框:
source, target, value
0 Foxtrot, Uniform, 1000
1 Golf, Alpha, 500
2 Zulu, India, 120
3 Uniform, Foxtrot, 100
写入 CSV 为:
"source, target, value"
"Foxtrot, Uniform, 1000"
"Golf, Alpha, 500"
"Zulu, India, 120"
"Uniform, Foxtrot, 100"
我已经为 .to_csv 方法尝试了几种不同的 kwargs,但无济于事。任何人 有解决办法吗?
【问题讨论】:
-
如果您调用
.to_csv(None),您能否粘贴从 Python 解释器获得的确切输出,以便它将结果打印为字符串。如果该输出中的各个行没有用引号分隔(即唯一的引号在开头和结尾,因为您的数据在字符串列中没有引号),那么我怀疑这只是一个显示问题。您是否尝试过使用另一个模块(例如标准csv)读取生成的 csv,以查看文件格式是否符合另一个库的预期? -
这看起来更像是你有一个只有一列而不是三列的 DataFrame,而且 pandas (正确!)引用输出以消除歧义。虽然并非不可能,但这似乎不太可能是您的意图。您可以编辑问题以包含来自
df.info()的输出,这将澄清情况。 -
我问是因为我无法重现此错误。这不是 Pandas 所做的,所以正在发生其他事情。
-
很好@DSM——它可能是一个单列,其中有一个长字符串作为名称,而长字符串作为值。标签对齐方式看起来很有可能。
-
问题在于数据帧的读取方式,而不是 CSV 的写入方式!我忘记在 .read_table() 中指定逗号作为分隔符。已解决。