我在Win 7 64bit上使用Python 2.7.7和Pandas。 我的輸入數據最初是作爲空間分隔,右對齊。 我現在有數據作爲一個熊貓數據表格,我輸出爲csv。 我想寫一個空格刪除右對齊的文本文件。 這些列有字符串,整數和浮點數。 我試圖格式化使用此列中的一種:python pandas dataframe to csv導出格式化文本文件,每列有獨特格式
df_fg['Mem']=df_fg['Mem'].map('{:5d}'.format)
這讓我每列單獨的格式,這是偉大的。
問題是,當我使用這種類型的格式時,我無法輸出空格分隔的文件。 這裏有各種方式我試着寫文本文件:
df_fg.to_csv('t.txt',index = False)
不出意外這將產生格式化成具有填充空間csv文件。
所以,我認爲下一個合乎邏輯的步驟是試圖包含「sep」來擺脫逗號。
df_fg.to_csv('t.txt',index = False,sep= ' ')
這將產生在文本文件格式的文本,但在每列中的每個元素用雙引號括起來。所以我得到的,看起來像
" 1"
" 1"
我嘗試了「引用」和 .to_csv的「雙引號」選項的各種組合列。什麼都沒有我最終使用雙引號內的格式化文本或csv文件中的格式化文本。我不能在文本文件中獲得格式化文本。
也許,我不應該使用「地圖」和「格式」? 任何有關如何編寫右對齊空格的建議都會非常感謝,它們將從dataform或csv中刪除字符串,整數和浮點數。
我試圖寫數據幀到一個字符串。我格式化使用命令中的數據幀的每一列如 df_g [ '紀念品'] = df_g [ '紀念品']圖( '{:4D}' 格式)。
df_g['Date1']=df_g['Date1'].map('{:12s}'.format)
我使用寫的數據幀數據幀轉換爲字符串命令。我希望輸出是正確的對齊
f2 = open('2.txt','w')
s=df_g.to_string(justify='right',index = False)
f2.write(s)
f2.close()
在文本文件中並非所有的列都是右對齊的。 第1列包含一個整數,它按預期進行了右對齊 第5列包含一個2位小數的浮點數,它與預期的右對齊 第2,3和4列是字符串(我使用下面的命令使它們成爲數據框中的字符串
df_g['Date1']=df_g['Date1'].map('{:12s}'.format)
1,26/04/2015,09:19:07,更文本,-1600.00,
(我提出的逗號只是爲了演示,其中字段結束,並開始
所以,我仍然無法找到dataframe.to_string輸出格式化st戒指。最有趣的是,「地圖格式」實際上改變了字符串的長度(和間距),但是「對齊='正確'」並不適用於它們。
有什麼建議嗎?
不'df.to_string(justify ='right')'做你想做的事?您必須使用文件編寫器來編寫行 – EdChum
['to_string'](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_string.html#pandas.DataFrame.to_string )接受一個StringIO緩衝區,所以你可以使用它來編寫你的空格分隔文件 – EdChum
具有諷刺意味的是,使用df.string可以很好地處理整數和浮點數,但是由於某些原因它不能正確地對齊字符串。 –