2017-01-02 133 views
6

我有這個數據幀數據幀file.txt的蟒蛇

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

回答

5

這是下面的一個幾乎完全重複:
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') 
10

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

TXT並不是一種真正的文件格式,它可能意味着在不同情況下的多種事情。通常,您可以使用CSV(逗號分隔值)或TSV(製表符分隔值)導出表格。你應該選擇哪一種,主要取決於你的數據:如果你的數據中有逗號但沒有標籤,你應該選擇TSV。您可以使用np.savetxt()。你可以用df_object.to_csv()

實現它做這樣的:

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

謝謝你,但我需要一個文本文件,而不是csv文件 –

+5

@Amal用'.txt'附加文件名將其保存爲文本文件。嘗試一下。 – MYGz