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의 column1column2 값을 기반으로 하는 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를 사용하고 조건부로 계산하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다