如何在 pandas to_csv() 中设置自定义分隔符?

新手上路,请多包涵

从文档中我知道,为了保存为 .csv 文件,可以简单地执行以下操作:

 df.to_csv(sep = ';')

但是,我想使用我的自定义分隔符,例如: ::: 。如何将 ::: 设置为分隔符?我尝试过了:

 df.to_csv(sep = ':::')

并得到: TypeError: "delimiter" must be a 1-character string

我也尝试过: df.to_csv('../data.csv', sep='\s*\:::', index=False) ,并得到了相同的结果。因此,如何设置自己的分隔符?。

更新

因为我的数据框中有 | ,所以我不能使用这样的字符作为分隔符。我试图用以下方法删除它:

df.replace('\b|\b', '-', regex = True)

但是,它没有用。关于如何删除它的任何替代方法?

原文由 john doe 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.7k
2 个回答

显然 Pandas 似乎不允许这种行为。

但是,如果您绝对想要“:::”。为什么不导出带有不常见字符(例如“|”)的数据框然后打开文件并替换“|”经过 ”:::”。

这是我想象的执行您想要的结果的唯一解决方案。

原文由 Jonathan DEKHTIAR 发布,翻译遵循 CC BY-SA 3.0 许可协议

这是一篇旧文章,但在谷歌搜索如何将 Dataframe 导出到 csv 时,我似乎总是会落在这里。

虽然你不能直接用 Pandas 来做,但是你可以用 Numpy 来做。

由于 Pandas 需要 Numpy,因此您不会增加包的大小。

做你想做的,你可以简单地做:

 import numpy as np
np.savetxt('out.csv', my_df, delimiter=':::')

Numpy 提供了一个更好的 api 来保存 csv 文件。您甚至可以使用以下方法指定不同的分隔符:

 import numpy as np
np.savetxt('out.csv', my_df, fmt=['%.2f:::', '%f', '%s'])

您可以 在文档 中找到所有可能的选项。

原文由 Gustavo Lopes 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题