数据帧到file.txt python

2024-05-23 13:56:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个数据框

       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   

我想以这种格式保存为文本文件

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

我试过这个代码,但不起作用:

np.savetxt('xgboost.txt', a.values, delimiter ='\t')

TypeError: Mismatch between array dtype ('object') and format specifier ('%.18e %.18e %.18e')

Tags: 数据代码txtvalue格式npbetweenarray
2条回答

这几乎是以下内容的完全复制:
Python, Pandas : write content of DataFrame into text File

我在这里再次报告引用的SO问题的答案,并对其进行了一些非常小的修改以适合本案例。
你可以用两种方法。

np.savetxt(),在这种情况下,您应该具有如下内容:

np.savetxt('xgboost.txt', a.values, fmt='%d', delimiter="\t", header="X\tY\tZ\tValue")  

假设a是数据帧。当然,您可以更改所需的分隔符(制表符、逗号、空格等)。
另一个选项,如我所附的答案和@MYGz的答案中所述,是使用to_csv方法,即:

a.to_csv('xgboost.txt', header=True, index=False, sep='\t', mode='a')

CSV表示逗号分隔的值。它是纯文本(ansi)。

TXT并不是一种真正的文件格式,它在不同的上下文中可能意味着多种内容。通常,您可以以CSV(逗号分隔值)或TSV(制表符分隔值)格式导出表。你应该选择哪一个主要取决于你的数据:如果你的数据中有逗号但没有制表符,你应该选择TSV。

您不必使用np.savetxt()。你可以用df_object.to_csv()来实现它

这样做:

df_object.to_csv('xgboost.txt', sep='\t', index=False)

相关问题 更多 >