본문 바로가기
  • CobsLab upgrades your company value by AI technology
pandas

복수열 조건문을 활용한 데이터프레임 필터링과 선택

by dmkdmk 2023. 3. 27.

복수열 조건문

복수열 조건문을 사용하여 데이터 프레임에서 여러 열에 대한 조건을 지정할 수 있습니다. 이를 통해 데이터를 필터링하거나 새로운 열을 생성할 수 있습니다.

# 데이터 프레임 생성
data = {'Name': ['John', 'Alice', 'Bob', 'Mary'],
        'Age': [25, 30, 18, 21],
        'Gender': ['Male', 'Female', 'Male', 'Female'],
        'Salary': [50000, 60000, 35000, 45000]}

df = pd.DataFrame(data)

# 복수열 조건문 사용
filtered_df = df[(df['Age'] > 20) & (df['Gender'] == 'Female')]

# 결과 출력
print(filtered_df)

>>>

    Name  Age  Gender  Salary
1  Alice   30  Female   60000
3   Mary   21  Female   45000

 

데이터 프레임을 생성하고, Age 열이 20보다 크고 Gender 열이 'Female'인 조건을 지정하여 필터링된 데이터 프레임 filtered_df를 생성했습니다. 

위 예시 코드에서는 두 개의 열 조건(Age 열이 20보다 크고 Gender 열이 'Female')을 & 연산자로 결합하여 필터링된 데이터 프레임을 생성합니다. 따라서, filtered_df 데이터프레임에는 Age 열이 20보다 크고 Gender 열이 'Female'인 데이터만 포함되어 있습니다.

 

 




 loc 함수를 사용하여 새로운 열을 생성할 수 있습니다. loc 함수는 두 개의 인자를 받는데, 첫 번째 인자는 행 인덱스 조건, 두 번째 인자는 열 인덱스 조건입니다. 위 예시 코드에서는 행 인덱스 조건에 복수열 조건문을 사용하고, 열 인덱스 조건에는 새로 생성할 열의 이름을 지정합니다. 그리고 이를 = 기호를 사용하여 새로운 값으로 설정합니다.

# 조건에 따라 새로운 열 생성
df.loc[(df['Salary'] >= 50000) & (df['Age'] < 25), 'New Salary'] = df['Salary'] * 1.1

# 결과 출력
print(df)

>>>
    Name  Age  Gender  Salary  New Salary
0   John   25    Male   50000         NaN
1  Alice   30  Female   60000         NaN
2    Bob   18    Male   35000         NaN
3   Mary   21  Female   45000         NaN


위 코드에서는 loc 함수를 사용하여 Salary 열이 50000 이상이고 Age 열이 25보다 작은 데이터에 대해 New Salary 열을 생성하고, 이를 Salary 열 값에 10%를 더한 값으로 설정합니다. 

 

판다스의 복수열 조건문을 활용하면 데이터를 필터링하거나 새로운 열을 생성하는 등 다양한 데이터 조작이 가능합니다.

복수열 조건문은 두 개 이상의 열에 대한 조건을 지정하여 데이터를 필터링하는 것을 말합니다. 이를 위해서는 논리 연산자

를 사용하여 열 조건들을 결합해야 합니다. 가장 많이 사용되는 논리 연산자는 &(and), |(or), ~(not)입니다.

 



위에서도 설명했지만  한번 더 보겠습니다.

 

데이터프레임에서 특정 열의 값이 주어진 조건에 해당하는 행을 선택하는 것은 데이터 분석에서 매우 중요한 작업 중 하나입니다. Pandas는 loc 메서드를 사용하여 데이터프레임에서 특정 조건을 만족하는 행을 선택할 수 있습니다. 이때 조건은 비교 연산자(>, <, >=, <=, ==, !=)를 사용하여 지정할 수 있습니다.

다음은 loc 메서드를 사용하여 Age 열이 20 이상인 행을 선택하는 두 번째 예시입니다.


# 데이터프레임 생성
data = {'Name': ['John', 'Alice', 'Bob', 'Mary'],
        'Age': [25, 30, 18, 21],
        'Gender': ['Male', 'Female', 'Male', 'Female'],
        'Salary': [50000, 60000, 35000, 45000]}
df = pd.DataFrame(data)

# Age 열이 20 이상인 행 선택
filtered_df = df.loc[df['Age'] >= 20]

print(filtered_df)
출력 결과는 다음과 같습니다.

>>>
    Name  Age  Gender  Salary
0   John   25    Male   50000
1  Alice   30  Female   60000
3   Mary   21  Female   45000


위 코드에서 df['Age'] >= 20는 Age 열의 각 행에서 20 이상인지 여부를 검사한 후, 이를 불린 값으로 반환합니다. 그런 다음, loc 메서드를 사용하여 이를 데이터프레임의 행 인덱스 조건으로 지정하여 Age 열이 20 이상인 행을 선택합니다.

데이터프레임에서 두 개 이상의 열 조건에 해당하는 행을 선택하는 경우에는 복수열 조건문을 사용할 수 있습니다. 다음은 Age 열이 20 이상이고 Gender 열이 'Female'인 행을 선택하는 예시입니다.



이와 같이 복수열 조건문을 사용하여 데이터프레임에서 원하는 행을 선택할 수 있습니다. 이를 이용하면 데이터프레임에서 필요한 정보를 추출하거나, 분석을 위한 데이터를 전처리하는 등 다양한 용도로 활용할 수 있습니다.

댓글