数据框到file.txt python

Ama*_*ghi 12 python text numpy dataframe pandas

我有这个数据帧

       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   
Run Code Online (Sandbox Code Playgroud)

我想将其保存为具有此格式的文本文件

   X    Y  Z    Value 
   18   55  1      70   
   18   55  2      67 
   18   57  2      75     
   18   58  1      35  
   19   54  2      70   
Run Code Online (Sandbox Code Playgroud)

我试过这段代码但是没有用:

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

TypeError: Mismatch between array dtype ('object') and format specifier ('%.18e %.18e %.18e')
Run Code Online (Sandbox Code Playgroud)

MYG*_*YGz 21

CSV表示逗号分隔值.这是纯文本(ansi).

TXT实际上并不是一种文件格式,它可能意味着不同环境中的多种内容.通常,您以CSV(逗号分隔值)或TSV(制表符分隔值)导出表.您应该选择哪种方式主要取决于您的数据:如果您的数据中包含逗号但不包含制表符,则应选择TSV.

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

像这样做:

df_object.to_csv('xgboost.txt', sep='\t', index=False)
Run Code Online (Sandbox Code Playgroud)

  • @Amal用`.txt`附加文件名会将其保存为文本文件.试试吧. (12认同)

fed*_*pad 12

这几乎完全与以下内容重复:
Python,Pandas:将DataFrame的内容写入文本File

我在这里再次报告所引用的SO问题的答案,并通过一些非常小的修改来适应这种情况.
您可以使用两种方法.

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

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

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

a.to_csv('xgboost.txt', header=True, index=False, sep='\t', mode='a')
Run Code Online (Sandbox Code Playgroud)