0

総売上 (TOTAL_2012) を降順でランク付けし、売上の約 25% になるようにグループのリストを取得しようとしています。したがって、階層 1 グループが最も多くの売上/会社を獲得しています。

sales['PERCENT_2012'] = sales['TOTAL_2012'] / sales['TOTAL_2012'].sum() 
sales['CUM_PERCENT_2012'] = sales['PERCENT_2012'].cumsum()

問題は、CUM_PERCENT_2012 が 100% または 1.00 よりも大きく、1.0000004 などの値であるため、浮動小数点の問題であることはわかっています。精度を強制する方法や小数点以下 2 桁に丸める方法はありますか。

4

3 に答える 3

3

.round() を追加:

sales['PERCENT_2012'] = sales['TOTAL_2012'] / sales['TOTAL_2012'].sum() 
sales['CUM_PERCENT_2012'] = sales['PERCENT_2012'].cumsum().round(2)

これにより、列に追加する前に実際にデータが丸められます。np.round(df) を使用して、表示/視覚化のためだけにデータを丸めることもできます。

于 2013-04-19T14:16:08.050 に答える
1

賢明に表示したいだけなら、実行してみませんか

pd.set_option('precision',3)
于 2013-08-14T02:05:36.350 に答える
0

結果に使用できformat()ます。

>>> "{0:.2f}".format(13.949999999999999)
'13.95'

詳細については、Python - 文字列 - 形式を参照してください。

于 2013-04-19T14:13:32.490 に答える