2017-10-19 1 views
0

$ 100에서 $ 1000까지의 지불을 포함하는 총 지불 이름의 데이터 세트가 있습니다. $ 100.05, $ 102 또는 104.05 인 지불이 있기 때문에 더 어려워집니다. 행에 인스턴스 $ 97이 표시되면 $ 100 이하 또는 100 - 200 미만의 카테고리가있는 열을 만들고 싶습니다.기존 데이터 프레임에 새 카테고리를 만들려면 어떻게해야합니까?

이렇게 코딩했습니다.

Code Screenshot

하지만 출력은 다음, 모든 행이 800과 900 사이라고이다;

Output Screenshot

이 사람에 지원하시기 바랍니다.

+1

코드 이미지를 게시하지 않는 이유에 대해 [read this] (https://meta.stackoverflow.com/a/285557/5241032)하십시오 [https://stackoverflow.com/ 도움/mcve) 방법에 대해 최소한의 완전하고 검증 가능한 예를 만듭니다. – cmaher

답변

1

당신은 당신은 pd.cut에게

labels = ['<100', '100-200','200-300','300-400','400-500','500-600','600-700','700-800','800-900'] 
df['Brackets'] = pd.cut(df['Total_payments'], \ 
bins = np.arange(0, df['Total_payments'].max()+100, 100), labels = labels) 


    Total_payments Brackets 
0 97.0   <100 
1 110.0   100-200 
2 100.5   100-200 
3 370.0   300-400 
4 820.0   800-900 
5 600.0   500-600 

편집하여 브라켓 열을 추가 할 수 있습니다

df = pd.DataFrame({'Total_payments': [97, 110, 100.5, 370, 820, 600]}) 

DF이 더미를 고려 pandas.cut 사용할 수 있습니다에 의해 제안 레이블 매개 변수를 사용하여 답을 업데이트를 @Mikhail Venkov

+1

'라벨'매개 변수를 사용하여 빈의 라벨로 사용할 문자열 목록을 전달할 수도 있습니다. 또한 빈은 균등하지 않은 경계 목록 일 수 있습니다. –

관련 문제