나의 기록
[Python] 데이터전처리(2) Boolean Indexing, 본문
특정 조건을 만족하는 데이터를 선택할 경우 (Boolean Indexing)
- Boolean Indexing 사용 방법
1. 단일 조건으로 필터링
# 'age' 열에서 30세 이상인 행 필터링
df[df['age'] >= 30]
2. 여러 조건으로 필터링
# 'age' 열에서 30세 이상이면서 'gender' 열이 'Male'인 행 필터링
df[(df['age'] >= 30) & (df['gender'] == 'Male')]
df[(df['sex']== 'Male') | (df['smoker']=='Yes')]
여기서 '|' 는 or 역할
3. 조건에 따른 특정 컬럼 필터링
# 'age' 열에서 30세 이상인 경우의 'name' 열만 선택
df.loc[df['age'] >= 30, 'name']
df.loc[df['size']>3, 'tip':'smoker']
4. isin()을 활용한 필터링:
- 리스트를 활용하여 여러 값들을 포함하는 행을 선택할 수 있습니다.
# 'gender' 열에서 'Male' 또는 'Female'인 행 필터링
df[df['gender'].isin(['Male', 'Female'])]
어우 헷갈려 ;;
- 실습해보기 : 특정 조건을 만족하는 데이터를 선택할 경우
1. 비교 연산자 활용
# 예를들어, data['컬럼명1']이 숫자(int)값인 경우
data['컬럼명1'] < 80
# 80보다 작으면 True
# 80보다 크면 False 을 반환합니다.
2. 조건을 통해 True/False 로 반환된 값을 활용해서 True에 해당하는 값만 불러올 수 있습니다.
condition = data['컬럼명1'] < 80
condition
3. 여러개 조건을 활용해서 값 불러오기
# 조건1 and 조건2 ==>> 조건1,2 둘다 만족해야한다 True
## and 를 &로 대체해서 사용할 수 있음
condition1 = data['컬럼명1'] < 80
condition2 = data['컬럼명2'] >= 50
condition = condition1 & condition2
data[conditon]
# 조건1 or 조건2 ==>> 조건1과 조건2 둘중 하나만 만족하면 True
## or 를 |로 대체해서 사용가능
condition1 = data['컬럼명1'] < 80
condition2 = data['컬럼명2'] >= 50
condition = condition1 | condition2
data[conditon]
# ()로 구분해서 조건을 한번에 입력해도 동일하게 활용할 수 있습니다.
condition = (data['컬럼명1'] < 80) & (data['컬럼명2'] >= 50)
data[conditon]
# 이렇게도 가능합니다.
data[(data['컬럼명1'] < 80) & (data['컬럼명2'] >= 50)]
# 조건이 많아서 행이 길어질 경우, 줄바꿈을 통해 구분해주시면 훨씬 가독성이 올라갑니다.
condition = (data['컬럼명1'] < 80) \
& (data['컬럼명2'] >= 50)\
& (data['컬럼명3'] >= 10)
data[conditon]
- 데이터 추가하기
df['created_at'] = '2024-01-01'
2024-01-01 문자 형태 날짜 형태로 바꿔주기
pd.to_datetime(df['created_at'])
df['created_at'] = pd.to_datetime(df['created_at'])
df['revenue'] = df['total_bill'] + df['tip']
df['tip_percentage'] = df['tip'] / df['revenue'] * 100
'개발일지 > Python' 카테고리의 다른 글
[Python] 데이터 집계 , Group by, Pivot table (0) | 2024.01.25 |
---|---|
[Python] 데이터 병합, concat()함수, merge()함수 (0) | 2024.01.25 |
[Python] 1.데이터 전처리 (데이터저장,불러오기,컬럼,인덱스,데이터확인,.loc,.iloc) (0) | 2024.01.24 |
[Python] 제품 수요가 많은 지역을 찾기(2) _ 지도에서 한 눈에 보기, folium, MarkerCluster, loc[] (0) | 2024.01.18 |
[Python] 04 제품 수요가 많은 지역 찾기, 라인 그래프 그리기,drop_duplicates(),reset_index(), sort_values(), merge() (0) | 2024.01.18 |