Python 将数据帧输出到格式化文本文件
我想将一个数据帧输出到一个文本文件,其格式如下:Python 将数据帧输出到格式化文本文件,python,pandas,Python,Pandas,我想将一个数据帧输出到一个文本文件,其格式如下: # 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['
# 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']))
如何在不使用ItErrors遍历所有行的情况下执行此操作?这种方法真的很慢
--编辑:
示例数据框如下所示:
这里有一个小片段:
1979 1 1 3.19 12.51 17.61 1.40 0.77 6.89
可以通过几种方式对列重新排序。一种是在输出时手动分配列名
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
写入文件时,请使用to_string方法。它将以您想要的等距格式保存内容。看
如果需要使用特定的浮点或字符串格式格式化各个列,可以执行以下操作。看
看看这是否有帮助:谢谢@ZdaR,这个问题没有真正的帮助,因为在我的案例中,格式要复杂得多。你能发布你的数据样本吗?谢谢@ColonelBeauvel,更新的问题显示样本数据集在这里:你能在那里发布吗?可能有防火墙之类的东西阻止数据访问。
use_cols=['year','month','day',...other columns]
with open('filename.txt','w') as outfile:
df.to_string(outfile,columns=use_cols)
df['cost'] = df['cost'].map('${:,.2f}'.format)