▪︎ 조건 필터링
data = {
'이름': ['홍길동', '김철수', '이영희', '박민수'],
'점수': [90, 70, 95, 95],
'반': [2, 1, 1, 2]
}
df = pd.DataFrame(data)
df
# 이름 점수 반
# 0 홍길동 90 2
# 1 김철수 70 1
# 2 이영희 95 1
# 3 박민수 95 2
mask = df["점수"] >= 80
filtered = df[mask]
filtered
# 이름 점수 반
# 0 홍길동 90 2
# 2 이영희 95 1
# 3 박민수 95 2
▫︎ 여러 조건의 결합
and : &
or : |
not : ~
isin() : 여러 값 중에 하나에 해당하는지 여부를 판단할 때 사용
mask = (df["반"] == 1) & (df["점수"] >= 80)
df[mask]
# 이름 점수 반
# 2 이영희 95 1
mask = (df["반"] == 2) | (df["점수"] >= 90)
df[mask]
# 이름 점수 반
# 0 홍길동 90 2
# 2 이영희 95 1
# 3 박민수 95 2
msdk = (df["이름"] == "홍길동") | (df["이름"] == "박민수")
mask = df["이름"].isin(["홍길동", "박민수"])
df[mask]
# 이름 점수 반
# 0 홍길동 90 2
# 3 박민수 95 2
mask = ~ df["이름"].isin(["홍길동", "박민수"])
df[mask]
# 이름 점수 반
# 1 김철수 70 1
# 2 이영희 95 1
▫︎ reset_index()
- 조건 필터링, 정렬 등을 통해 인덱스가 변경 됐을시 인덱스 초기화 가능
- 초기화시 index 컬럼이 생겨 기존 인덱스 저장
reset_index(drop=True) 를 사용하여 기존 인덱스 삭제 가능
mask = (df["반"] == 2) | (df["점수"] >= 90)
df2 = df[mask]
df2
# 이름 점수 반
# 0 홍길동 90 2
# 2 이영희 95 1
# 3 박민수 95 2
df2 = df2.reset_index()
df2
# index 이름 점수 반
# 0 0 홍길동 90 2
# 1 2 이영희 95 1
# 2 3 박민수 95 2
df2 = df2.reset_index(drop=True)
df2
# 이름 점수 반
# 0 홍길동 90 2
# 1 이영희 95 1
# 2 박민수 95 2
▪︎ 열 추가 및 수정, 삭제
df = pd.DataFrame({
'이름': ['김철수', '이영희', '박민수'],
'국어': [90, 80, 70],
'영어': [85, 78, 92]
})
df
# 이름 국어 영어
# 0 김철수 90 85
# 1 이영희 80 78
# 2 박민수 70 92
▫︎ 열 추가