[英]When converting a pandas dataframe to csv, how can i seperate the headers of the dataframe into different columns of the csv-file?
[英]How can I get a pandas dataframe into CSV format with different formats per columns?
熊貓 DataFrame 文本 output 函數的問題:
到目前為止我做了什么:
我以新的 Python 格式化格式生成格式化字符串列表,例如['{8.1f}','{9.3f}',...,]
,然后執行以下操作:
f.write(', '.join(fmt).format(*data)+'\r\n')
有沒有辦法讓 pandas 為我做一些黑客攻擊,或者這是一個功能請求,我已經完成了所有工作? ;)
np.savetxt
可以做到(通過提供fmt
參數,它可以是一個list
),但這意味着必須單獨編寫列名( header
參數):
np.savetxt('temp.csv', df.values, fmt=['%8.1f','%9.3f','%8.1f','%9.3f','%8.1f'],
delimiter=',', header=' '+' ,'.join(df.columns), comments='')
你可以試試這個:
import pandas as pd
df = pd.DataFrame({
'a': [-8.114445, 888.303217, 80],
'b': ['d', 'gg5g', '9ghhhh'],
'c': [14.34e+4,12.1e-1,1e-5],
'd': [34,65373,-176576]}
)
df.to_string("temp.txt",
formatters={
"a": "{:6,.2f}".format,
"b": "{:<}".format,
"c": "{:9,.5e}".format,
"d": "{:7d}".format
}, index=False
)
“temp.txt”的內容:
a b c d
-8.11 d 1.43400e+05 34
888.30 gg5g 1.21000e+00 65373
80.00 9ghhhh 1.00000e-05 -176576
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.