others - 使用 python Pandas dataframe导出格式化文本文件,

我在Win 7上使用Python 2.7.7 Pandas,把数据导出一个csv,我尝试使用以下方法格式化其中一个列:


df_fg['Mem']=df_fg['Mem'].map('{:5d}'.format)

这允许我单独设置每一列的格式,

问题是,当我使用这种格式时,我无法输出空格分隔的文件,以下是我尝试编写文本文件的各种方法:


df_fg.to_csv('t.txt',index = False)


df_fg.to_csv('t.txt',index = False,sep= ' ') 

在文本文件中生成格式化文本,但是列中的每个元素都用双引号括起来了。 我得到了


" 1"
" 1"

我试图将数据帧写入字符串,我使用诸如df_g ['Mem'] =df_g ['Mem'] .map('{:4d}'.format ) 之类的命令来格式化数据帧中的每一列。


df_g['Date1']=df_g['Date1'].map('{:12s}'.format)

我使用dataframe string命令编写了dataframe ,


f2 = open('2.txt','w')
s=df_g.to_string(justify='right',index = False)
f2.write(s) 
f2.close() 


df_g['Date1']=df_g['Date1'].map('{:12s}'.format)

1 , 26/04/2015 ,09:19:07 ,more-text ,-1600.00 ,

我仍然无法找到dataframe.to_string输出格式化字符串的方法。

时间:

先填充列条目,然后沿轴1求和:


s = df_string.sum(axis=1)

然后在每个元素中添加一个换行符,然后再次求和:


s = (s + 'n').sum()

然后写文件


open('t.txt', 'w').write(s)

下面是一个简洁例子:


df = pd.DataFrame({'A': [1.2, 2.34], 'B': ['foo', 'bar', ]})
print (df.applymap(lambda x: '{:>20s}'.format(str(x))).sum(axis=1) + 'n').sum()

 1.2 foo
 2.34 bar

...