복수열 조건문
복수열 조건문을 사용하여 데이터 프레임에서 여러 열에 대한 조건을 지정할 수 있습니다. 이를 통해 데이터를 필터링하거나 새로운 열을 생성할 수 있습니다.
# 데이터 프레임 생성
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'인 행을 선택하는 예시입니다.
이와 같이 복수열 조건문을 사용하여 데이터프레임에서 원하는 행을 선택할 수 있습니다. 이를 이용하면 데이터프레임에서 필요한 정보를 추출하거나, 분석을 위한 데이터를 전처리하는 등 다양한 용도로 활용할 수 있습니다.
'pandas' 카테고리의 다른 글
Pandas의 인덱싱과 슬라이싱: 데이터프레임에서의 원하는 값 추출하기 (0) | 2023.04.03 |
---|---|
람다(lambda) 함수와 함께하는 판다스(Pandas) apply() 메소드 활용법 (0) | 2023.03.27 |
Matplotlib으로 효과적인 데이터 시각화 방법 익히기 (2) | 2023.03.24 |
Seaborn을 활용한 데이터 시각화 - 깔끔하고 유용한 시각화 기법들 (0) | 2023.03.24 |
다양한 그래프 유형으로 살펴보는 데이터 시각화! (0) | 2023.03.23 |
댓글