Python,Pandas:将 DataFrame 的内容写入文本文件

新手上路,请多包涵

我有这样的熊猫数据框

        X    Y  Z    Value
0      18   55  1      70
1      18   55  2      67
2      18   57  2      75
3      18   58  1      35
4      19   54  2      70

我想将此数据写入如下所示的文本文件:

 18 55 1 70
18 55 2 67
18 57 2 75
18 58 1 35
19 54 2 70

我尝试过类似的东西

f = open(writePath, 'a')
f.writelines(['\n', str(data['X']), ' ', str(data['Y']), ' ', str(data['Z']), ' ', str(data['Value'])])
f.close()

这是不正确的。这个怎么做?

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

阅读 987
2 个回答

您可以使用 np.savetxt 并访问 np 属性 .values

 np.savetxt(r'c:\data\np.txt', df.values, fmt='%d')

产量:

 18 55 1 70
18 55 2 67
18 57 2 75
18 58 1 35
19 54 2 70

to_csv

 df.to_csv(r'c:\data\pandas.txt', header=None, index=None, sep=' ', mode='a')

注意 np.savetxt 你必须传递一个使用附加模式创建的文件句柄。

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

执行此操作的本机方法是使用 df.to_string()

 with open(writePath, 'a') as f:
    dfAsString = df.to_string(header=False, index=False)
    f.write(dfAsString)

会输出如下

18 55 1 70
18 55 2 67
18 57 2 75
18 58 1 35
19 54 2 70

此方法还可以让您轻松选择要使用 columns 属性打印的列,让您保留列、索引标签(如果需要)以及间距等其他属性。

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

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