2

Pandas 中是否有任何方法可以将 a 写入自动调整列宽DataFrame的文件?(即类似于 Pandas在屏幕上打印 a 时所做的事情)csvDataFrame

目前如果我这样做

df.to_csv(string_buf, sep = ' ', Index=False)
print(string_buf.getvalue())

我得到:

 column1 column2 column3
0 4 james matching68 -100
1 44 george foo -500
2 14 jason trinitron -400
3 1 tom trinitron -400
4 1 lukas esp -100

顺便说一句,Index即使我明确禁用它,它也会打印出来也很奇怪。

4

1 回答 1

2

冒着被称为 Captain Obvious™ 的风险,为什么不将结果写入to_string()文件呢?

with open('csv.csv', 'w') as f:
    f.write(df.to_string())

如果您不想编写索引,您可能需要使用numpy

df = DataFrame(randn(10, 3), columns=list('abc'))
values = df.values
columns = df.columns.values

with open('csv.csv', 'w') as f:
    savetxt(f, columns[newaxis], fmt='%10s')
    savetxt(f, values, fmt='%10.4f')

cat csv.csv

      a          b          c
-0.8023    -0.6464    -0.2102
-1.4442    -0.5965     1.7326
 1.5028     1.7246    -0.4788
-1.6442    -0.3962     0.1391
 1.2404     1.1226    -0.3639
-0.6567     1.3464     0.2167
 0.4928     0.2204    -0.8549
-1.0625    -0.6588    -1.0551
-0.9175    -0.5855    -0.4151
于 2013-08-25T04:29:24.930 回答