2016-08-07 16 views
0

浮動小数点型の変数を持つデータフレームがあるので、その変数の値を小数点以下の桁数に変更する必要があります。 (ダミーデータ)はPythonのデフォルトの精度を変更する方法

prod_code sales_avg 
122  12332.234233 
123  12212.234123 

現在、私は次のことをやっている:

prod_sales_avg=pd.DataFrame(weekly_sales.groupby(['prod_code']).agg({'weekly_sales':{'sales_avg':'mean'}})) 
prod_sales_avg.columns=prod_sales_avg.columns.droplevel(0) 
prod_sales_avg=prod_sales_avg.reset_index() 
prod_sales_avg['sales_avg']=round(prod_sales_avg['sales_avg'],9) 

私は(私はそれがデフォルトだと思う)6桁件まで小数点以下の桁を取得しています。小数点以下桁数を9に増やす必要がありますが、上記のコードは機能しません。後で私は比較のためにこの変数を使用するので、ちょうど"ディスプレイ"の見通しを探していません。値は小数点以下9桁として格納する必要があります。私はここで何が間違っているのですか?次のようにあなたがそれを行うことができます

+0

を使用してシリーズを経てDataframe.round

prod_sales_avg.round({'sales_avg': 9}) 

を使用しては、[10進】(HTTPSではありません/docs.python.org/3.5/library/decimal.html)は、固定精度caのfloatよりも優れたデータ型です結婚?パンダのラウンドは、不正な不正確な浮動小数点を返す[numpy.around](http://docs.scipy.org/doc/numpy/reference/generated/numpy.around.html)を参照しています... – Aprillion

答えて

1

:/:

をDATAFRAME経由Series.round

prod_sales_avg['sales_avg'] = prod_sales_avg['sales_avg'].round(decimals=9) 
+0

何とかうまくいきませんでした。私にとってはまだ6桁の数字が表示されています。デフォルトのオプションを変更する必要がありますか? 私は最初にpd.set_option( 'display.precision'、10)を入力しました。 – Mukul

+0

そうかもしれない。あなたの 'import'ステートメントの後に' pd.set_option( 'precision'、10) 'を追加するだけです。 –

+1

Nickil +1に感謝し、答えを受け入れました – Mukul

関連する問題