私はこのデータフレームを持っています
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')
これは、次のほぼ正確な複製です。
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')
[〜#〜] csv [〜#〜]は、カンマ区切り値を意味します。これはプレーンテキスト(ansi)です。
TXTは実際にはファイル形式ではなく、異なるコンテキストで複数のことを意味する場合があります。通常、テーブルはCSV(カンマ区切り値)またはTSV(タブ区切り値)でエクスポートします。どちらを選択するかは、主にデータによって異なります。データにコンマが含まれていてタブが含まれていない場合は、TSVを使用する必要があります。
np.savetxt()
を使用する必要はありません。 df_object.to_csv()
で実現できます
次のようにします:
df_object.to_csv('xgboost.txt', sep='\t', index=False)