2013-04-19 5 views
0

총 매출 (TOTAL_2012)을 내림차순으로 정렬했으며 판매량의 약 25 %를 차지하는 그룹 목록을 얻으려고하므로 1 그룹이 가장 많은 매출을 올리고 있습니다. /회사.cumsum 및 division의 팬더 부동 소수점 문제

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

문제는 소수점 이하 2 자리까지 정밀/라운드를 시행 할 수있는 방법이있다, 그래서이 부동 소수점 문제의 알고있는 CUM_PERCENT_2012는 1.0000004 같은 값으로 100 % 또는 1.00보다 큰 것입니다.

답변

2

) (.round를 추가

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

이 실제로 컬럼에 추가하기 전에 데이터를 반올림합니다. 또한 np.round (df)를 사용하여 표현/시각화 할 때만 데이터를 반올림 할 수 있습니다. 그냥 현명를 표시하려면

0

귀하는 결과에 format()을 (를) 사용할 수 있습니다.

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

자세한 내용은 Python - String - Format을 참조하십시오.

1

, 왜 그냥 실행

pd.set_option('precision',3)