Pandas의 조건을 기반으로 새 열을 만드는 방법
특정 조건에 따라 Pandas DataFrame에 새 열을 생성하려는 경우가 종종 있습니다.
이 튜토리얼에서는 다음 DataFrame을 사용하여 이를 수행하는 방법에 대한 몇 가지 예를 제공합니다.
import pandas as pd import numpy as np #createDataFrame df = pd. DataFrame ({'rating': [90, 85, 82, 88, 94, 90, 76, 75, 87, 86], 'points': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19], 'assists': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5], 'rebounds': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]}) #view DataFrame df rating points assists rebounds 0 90 25 5 11 1 85 20 7 8 2 82 14 7 10 3 88 16 8 6 4 94 27 5 6 5 90 20 7 9 6 76 12 6 6 7 75 15 9 10 8 87 14 9 10 9 86 19 5 7
예 1: 이진 값을 사용하여 새 열 만들기
다음 코드는 주어진 행의 포인트가 20보다 크면 값이 “yes”이고 그렇지 않으면 “no”인 “Good”이라는 새 열을 만드는 방법을 보여줍니다.
#create new column titled 'Good' df['Good'] = np. where (df['points']>20, ' yes ', ' no ') #view DataFrame df rating points assists rebounds Good 0 90 25 5 11 yes 1 85 20 7 8 no 2 82 14 7 10 no 3 88 16 8 6 no 4 94 27 5 6 yes 5 90 20 7 9 no 6 76 12 6 6 no 7 75 15 9 10 no 8 87 14 9 10 no 9 86 19 5 7 no
예 2: 여러 값이 포함된 새 열 만들기
다음 코드는 값이 다음과 같은 “Good”이라는 새 열을 만드는 방법을 보여줍니다.
- 포인트가 25점 이상인 경우 “예”입니다.
- 15 ≤ 포인트 < 25인 경우 “아마도”
- 점수가 15점 미만인 경우 “아니요”
#define function for classifying players based on points def f(row): if row['points'] < 15: val = 'no' elif row['points'] < 25: val = 'maybe' else : val = 'yes' return val #create new column 'Good' using the function above df['Good'] = df. apply (f, axis=1) #view DataFrame df rating points assists rebounds Good 0 90 25 5 11 yes 1 85 20 7 8 maybe 2 82 14 7 10 no 3 88 16 8 6 maybe 4 94 27 5 6 yes 5 90 20 7 9 maybe 6 76 12 6 6 no 7 75 15 9 10 maybe 8 87 14 9 10 no 9 86 19 5 7 maybe
예시 3: 기존 열과의 비교를 기반으로 새 열 만들기
다음 코드는 값이 다음과 같은 “assist_more”라는 새 열을 만드는 방법을 보여줍니다.
- 어시스트 > 리바운드인 경우 “예”입니다.
- 그렇지 않으면 ‘아니요’.
#create new column titled 'assist_more' df['assist_more'] = np. where (df['assists']>df['rebounds'], ' yes ', ' no ') #view DataFrame df rating points assists rebounds assist_more 0 90 25 5 11 no 1 85 20 7 8 no 2 82 14 7 10 no 3 88 16 8 6 yes 4 94 27 5 6 no 5 90 20 7 9 no 6 76 12 6 6 no 7 75 15 9 10 no 8 87 14 9 10 no 9 86 19 5 7 no
여기에서 더 많은 Python 튜토리얼을 찾을 수 있습니다.