簡體   English   中英

將熊貓數據框輸出到格式化的文本文件

[英]Outputting pandas dataframe to formatted text file

# df is dataframe, f_out is a text file I am outputting to
for index, row in df.iterrows():
    f_out.write(('%6d%4d%4d'+6*'%6.2f'+'\n') %
                (row['year'],row['month'],row['day'],
                 row['sr'],row['tma'],row['tmi'],
                 row['apc'],row['rhu'],row['wnd']))

我想將數據幀輸出到格式為以下內容的文本文件:

  1979   1   1  3.19 12.51 17.61  1.40  0.77  6.89

如何在不使用迭代遍歷所有行的情況下執行此操作? 這種方法真的很慢

- 編輯:

示例數據幀在此處: https ://www.dropbox.com/s/d109fvj1higo88b/7_9.csv?dl =0

這里的小片段:

            air.2m  ap  day month   rhu sr  swr_diff tma    tmi    apc     wnd  year
1/1/1979    -20.9   0.0 1.0  1.0    0.8 2.3 26.3    -16.1   -20.9   73.4    4.8 1979
1/2/1979    -25.2   0.0 2.0  1.0    0.8 2.2 25.2    -18.6   -25.2   70.6    4.4 1979
1/3/1979    -26.2   0.0 3.0  1.0    0.8 2.5 29.4    -16.4   -26.2   82.1    4.7 1979
1/4/1979    -25.6   0.0 4.0  1.0    0.8 2.0 23.6    -16.1   -25.6   66.2    4.5 1979
1/5/1979    -29.6   0.0 5.0  1.0    0.8 2.8 32.2    -19.0   -29.6   88.1    3.4 1979
1/6/1979    -24.6   0.0 6.0  1.0    0.8 2.7 31.2    -15.7   -24.6   85.3    4.5 1979
1/7/1979    -22.8   0.0 7.0  1.0    0.9 2.6 30.5    -16.0   -22.8   84.1    3.4 1979
1/8/1979    -24.0   0.0 8.0  1.0    0.8 2.6 29.9    -14.2   -24.0   81.9    4.1 1979
1/9/1979    -19.0   0.0 9.0  1.0    0.9 2.8 32.6    -14.4   -19.0   87.8    3.2 1979
1/10/1979   -20.9   0.0 10.0 1.0    0.8 2.4 28.0    -16.5   -20.9   77.1    2.1 1979
1/11/1979   -24.2   3.1 11.0 1.0    0.8 2.2 25.0    -12.8   -24.2   73.4    3.1 1979
1/12/1979   -14.5   1.7 12.0 1.0    0.9 1.8 20.7    -11.1   -14.5   63.0    2.4 1979
1/13/1979   -16.9   6.3 13.0 1.0    0.9 1.9 22.5    -12.3   -16.9   69.6    7.2 1979

您可以通過幾種方式對列進行重新排序。 一種是僅在輸出時手動分配列名。

use_cols=['year','month','day',...other columns]

編寫文件時,請使用to_string方法。 它將以所需的均勻間隔格式保存內容。 這里

with open('filename.txt','w') as outfile:
    df.to_string(outfile,columns=use_cols)

如果您需要使用特定的float或string格式設置各個列的格式,則可以執行以下操作。 這里

df['cost'] = df['cost'].map('${:,.2f}'.format)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM