Pandas有没有办法将DataFrame
写入csv
文件,其中列宽自动调整? (即类似于Pandas在向屏幕打印DataFrame
时所做的事情)
如果我这样做
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
也很奇怪。
答案 0 :(得分: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