簡體   English   中英

數據框到file.txt python

[英]data frame to file.txt 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')

CSV表示逗號分隔值。 它是純文本 (ansi)。

TXT 並不是真正的文件格式,它在不同的上下文中可能意味着多種含義。 通常,您以 CSV(逗號分隔值)或 TSV(制表符分隔值)格式導出表格。 您應該選擇哪個主要取決於您的數據:如果您的數據中有逗號但沒有制表符,您應該選擇 TSV。

您不必使用np.savetxt() 您可以使用df_object.to_csv()實現它

像這樣做:

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

這幾乎是以下內容的完全重復:
Python,Pandas:將 DataFrame 的內容寫入文本文件

我在這里再次報告引用的 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')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM