2017-11-10 5 views
0

データフレームをCSVに書き込もうとしていますが、.csvをコンマでフォーマットしたいと思います。私はto_csvドキュメントでこのような書式などを使用する方法はありません。パンダのデータフレーム内の数値の千のセパレータの書式設定

誰かが出力をフォーマットする良い方法を知っていますか?

私のCSV出力は次のようになります。

12172083.89 1341.4078 -9568703.592 10323.7222 
21661725.86 -1770.2725 12669066.38 14669.7118 

私はそれは次のようになりたいと思います:

12,172,083.89 1,341.4078 -9,568,703.592 10,323.7222 
21,661,725.86 -1,770.2725 12,669,066.38 14,669.7118 
+0

デフォルトでは、 'to_csv'は区切り記号としてカンマを使用していますので、生データ、あなたのdfを再作成するコード、試したもの、その結果、そして望みの結果が必要です – EdChum

+0

私は、 csvと千の区切り文字を混在させる –

+0

カンマを*の区切り値ファイルに振りかける場合は、区切り記号 'sep'にカンマ以外の記号を必ず指定してください:) –

答えて

1

コンマがデフォルトの区切りです。独自の区切り文字を選択したい場合は、pandas to_csv()メソッドのsepパラメータを宣言してください。
df.to_csv(sep=',')

あなたの目標は、あなたがこの例に従うことができ千枚のセパレータを作成し、バックCSVにエクスポートする場合:

import pandas as pd 
df = pd.DataFrame([[12172083.89, 1341.4078, -9568703.592, 10323.7222], 
[21661725.86, -1770.2725, 12669066.38, 14669.7118]],columns=['A','B','C','D']) 
for c in df.columns: 
    df[c] = df[c].apply(lambda x : '{0:,}'.format(x)) 
df.to_csv(sep='\t') 

プリントアウトしたときにあなただけの区切りを示すためにパンダをしたい場合:

pd.options.display.float_format = '{:,}'.format 
print(df) 
0

あなたが探しているのは、csv出力とは関係なく、次のようなものです。

print('{0:,}'.format(123456789000000.546776362)) 

は参照format string syntax

123,456,789,000,000.546776362 

を生成します。

また、上記の@Peterのコメントには、まずはcsvの構造を妥協することに注意してください。

関連する問題