2013-08-25 13 views
2

在Pandas中是否有任何方法將DataFrame寫入csv文件,其中列寬度是自動調整? (即類似於印刷DataFrame到屏幕上時,什麼熊貓一樣)打印到具有自動寬度的CSV文件

目前如果我做

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即使我明確禁用它。

+1

的'index'關鍵字應該是'指數'不'索引'。 –

回答

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