web-dev-qa-db-ja.com

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')
12

これは、次のほぼ正確な複製です。
Python、Pandas:DataFrameのコンテンツをテキストファイルに書き込む

ここで、引用されたSOの質問からの回答を、このケースに合うように非常に小さな修正を加えて再度報告します。
2つの方法を使用できます。

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')
12
fedepad

[〜#〜] csv [〜#〜]は、カンマ区切り値を意味します。これはプレーンテキスト(ansi)です。

TXTは実際にはファイル形式ではなく、異なるコンテキストで複数のことを意味する場合があります。通常、テーブルはCSV(カンマ区切り値)またはTSV(タブ区切り値)でエクスポートします。どちらを選択するかは、主にデータによって異なります。データにコンマが含まれていてタブが含まれていない場合は、TSVを使用する必要があります。

np.savetxt()を使用する必要はありません。 df_object.to_csv()で実現できます

次のようにします:

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