【问题标题】:data frame to file.txt python数据框到file.txt python
【发布时间】:2017-05-16 15:52:37
【问题描述】:

我有这个数据框

       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 numpy text dataframe


    【解决方案1】:

    CSV 表示逗号分隔值。它是纯文本 (ansi)。

    TXT 并不是真正的文件格式,它在不同的上下文中可能意味着多种含义。通常,您以 CSV(逗号分隔值)或 TSV(制表符分隔值)导出表格。您应该选择哪个主要取决于您的数据:如果您的数据中有逗号但没有制表符,则应该选择 TSV。

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

    这样做:

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

    【讨论】:

    • @Amal 在文件名后面加上.txt 会将其保存为文本文件。试试看。
    【解决方案2】:

    这与以下内容几乎完全相同:
    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')
    

    【讨论】:

    • 中间还是逗号
    猜你喜欢
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    • 2019-03-15
    • 2019-08-10
    • 2014-07-28
    • 2017-05-14
    相关资源
    最近更新 更多