【问题标题】:Pandas dataframe.to_csv() returns each row in quotesPandas dataframe.to_csv() 以引号返回每一行
【发布时间】: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() 中指定逗号作为分隔符。已解决。

标签: python csv pandas


【解决方案1】:

Pandas .read_table() 需要指定正确的分隔符,否则它会为每一行返回一个长字符串。如果数据帧格式正确,.to_csv() 将返回正确的(不带引号的)输出。

【讨论】:

    猜你喜欢
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-16
    • 2014-06-11
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多