Pandas: 여러 if else 조건을 사용하여 새 열 만들기
다음 구문을 사용하면 여러 if else 조건을 사용하여 pandas DataFrame에 새 열을 만들 수 있습니다.
#define conditions conditions = [ (df[' column1 '] == ' A ') & (df[' column2 '] < 20 ), (df[' column1 '] == ' A ') & (df[' column2 '] >= 20 ), (df[' column1 '] == ' B ') & (df[' column2 '] < 20 ), (df[' column1 '] == ' B ') & (df[' column2 '] >= 20 ) ] #define results results = [' result1 ', ' result2 ', ' result3 ', ' result4 '] #create new column based on conditions in column1 and column2 df[' new_column '] = np. select (conditions, results)
이 특정 예에서는 값이 DataFrame의 column1 및 column2 값을 기반으로 하는 new_column 이라는 열을 생성합니다.
다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.
예: Pandas에서 여러 If Else 조건을 사용하여 새 열 생성
다양한 농구 선수에 대한 정보가 포함된 다음과 같은 pandas DataFrame이 있다고 가정합니다.
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' points ': [15, 18, 22, 24, 12, 17, 20, 28]}) #view DataFrame print (df) team points 0 to 15 1 to 18 2 to 22 3 to 24 4 B 12 5 B 17 6 B 20 7 B 28
이제 각 플레이어를 다음 네 그룹 중 하나로 분류하는 클래스 라는 새 열을 생성한다고 가정해 보겠습니다.
- 팀이 A이고 점수가 20 미만인 경우 Bad_A
- Good_A 팀이 A이고 포인트가 ≥ 20인 경우
- 팀이 B이고 점수가 20 미만인 경우 Bad_B
- Good_B 팀이 B이고 포인트가 ≥ 20인 경우
이를 위해 다음 구문을 사용할 수 있습니다.
import numpy as np #define conditions conditions = [ (df[' team '] == ' A ') & (df[' points '] < 20 ), (df[' team '] == ' A ') & (df[' points '] >= 20 ), (df[' team '] == ' B ') & (df[' points '] < 20 ), (df[' team '] == ' B ') & (df[' points '] >= 20 ) ] #define results results = [' Bad_A ', ' Good_A ', ' Bad_B ', ' Good_B '] #create new column based on conditions in column1 and column2 df[' class '] = np. select (conditions, results) #view updated DataFrame print (df) team points class 0 A 15 Bad_A 1 A 18 Bad_A 2 A 22 Good_A 3 A 24 Good_A 4 B 12 Bad_B 5 B 17 Bad_B 6 B 20 Good_B 7 B 28 Good_B
클래스 라는 새로운 열에는 팀 및 포인트 열의 값을 기준으로 각 플레이어의 순위가 표시됩니다.
참고 : NumPy select() 함수에 대한 전체 문서는 여기에서 찾을 수 있습니다.
추가 리소스
다음 튜토리얼에서는 Pandas에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
Pandas: 조건에 따라 부울 열을 만드는 방법
Pandas: 조건이 있는 열의 값을 계산하는 방법
Pandas: Groupby를 사용하고 조건부로 계산하는 방법