인덱싱, 필터링 및 불리언 마스크
loc, iloc 및 불리언 조건으로 행과 열을 선택합니다.
인덱싱, 필터링 및 불리언 마스크은(는) CoddyKit의 무료 Python Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Python Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Python Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
loc와 iloc
loc는 레이블로 선택하고, iloc는 정수 위치로 선택합니다. 둘을 절대 혼동하지 마십시오.
import pandas as pd
df = pd.DataFrame({"a":[1,2,3],"b":[4,5,6]}, index=["x","y","z"])
print(df.loc["y"]) # row with label y
print(df.iloc[1]) # row at position 1 (same row)
print(df.loc["x":"y"]) # rows x to y inclusive불리언 마스크 필터링
불리언 Series를 만들고 이를 사용해 행을 선택합니다. 이는 NumPy 불리언 인덱싱에 해당하는 판다스 방식입니다.
import pandas as pd
df = pd.DataFrame({"name":["Alice","Bob","Carol"],"age":[30,17,25]})
adults = df[df["age"] >= 18]
print(adults)
# Alice 30
# Carol 25여러 조건
&(and)와 |(or)로 불리언 조건을 결합합니다. 각 조건은 괄호로 묶으십시오.
import pandas as pd
df = pd.DataFrame({"city":["NY","LA","NY","LA"],"score":[80,90,70,85]})
result = df[(df["city"]=="NY") & (df["score"]>75)]
print(result)query() 메서드
df.query("expression")은 문자열 표현식을 받아들이며, 불리언 마스크보다 읽기 쉬운 경우가 많습니다.
import pandas as pd
df = pd.DataFrame({"age":[30,17,25],"score":[90,80,70]})
result = df.query("age >= 18 and score > 75")
print(result)isin() 필터링
isin(list)은 열의 값이 지정한 목록에 포함된 행을 필터링합니다.
import pandas as pd
df = pd.DataFrame({"city":["NY","LA","Chicago","NY"],"val":[1,2,3,4]})
print(df[df["city"].isin(["NY","LA"])])
# rows with NY or LA범위 필터링에 between() 사용
series.between(left, right)는 [left, right] 범위의 값에 대해 True를 반환합니다. 기본적으로 양 끝값을 모두 포함합니다.
import pandas as pd
df = pd.DataFrame({"score":[55,70,85,95,40]})
print(df[df["score"].between(60, 90)])
# 70 and 85할당에 loc 사용
제자리 할당을 수행할 때는 SettingWithCopyWarning을 피하기 위해 항상 loc/iloc를 사용합니다.
import pandas as pd
df = pd.DataFrame({"val":[1,2,3,4]})
df.loc[df["val"] > 2, "val"] = 99
print(df)
# 0:1 1:2 2:99 3:99단일 값에 at 및 iat 사용
at[label, col]과 iat[i, j]는 빠른 스칼라 접근을 제공합니다. 단일 값에 대해서는 loc/iloc보다 빠릅니다.
import pandas as pd
df = pd.DataFrame({"a":[10,20],"b":[30,40]})
print(df.at[0,"a"]) # 10 (by label)
print(df.iat[1,1]) # 40 (by position)Dtype으로 선택하기
select_dtypes(include/exclude)는 데이터 형식에 따라 열을 선택합니다.
import pandas as pd
df = pd.DataFrame({"x":[1,2],"name":["a","b"],"score":[1.5,2.5]})
nums = df.select_dtypes(include=["number"])
print(nums.columns.tolist()) # ['x', 'score']중복 제거
drop_duplicates()는 중복 행을 제거합니다. 특정 열만 비교하려면 subset을 지정합니다.
import pandas as pd
df = pd.DataFrame({"name":["Alice","Bob","Alice"],"age":[30,25,30]})
print(df.drop_duplicates())
# keeps first Alice, removes secondnlargest 및 nsmallest
열의 값을 기준으로 상위 또는 하위 N개 행을 효율적으로 선택합니다.
import pandas as pd
df = pd.DataFrame({"product":["A","B","C","D"],"sales":[500,300,800,200]})
print(df.nlargest(2,"sales"))
# C 800
# A 500빠른 확인
loc와 iloc의 차이는 무엇입니까?
복습
레이블 기반 선택에는 loc[label]을, 위치 기반 선택에는 iloc[i]를 사용합니다. &/|로 결합한 불리언 마스크를 사용해 행을 필터링합니다. 읽기 쉬운 필터에는 query()를, 포함 여부 확인에는 isin()을 사용하고, SettingWithCopyWarning을 피하려면 항상 loc을 통해 할당합니다.
자주 묻는 질문
“인덱싱, 필터링 및 불리언 마스크” 강의는 무료인가요?
네 — “인덱싱, 필터링 및 불리언 마스크” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Python Academy 강의 전체를 잠금 해제할 수 있습니다. Python Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“인덱싱, 필터링 및 불리언 마스크”에서 뭘 배우나요?
loc, iloc 및 불리언 조건으로 행과 열을 선택합니다. 브라우저에서 직접 실행하는 실습 코드로 Python Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Python Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Python Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“인덱싱, 필터링 및 불리언 마스크” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Python Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Python Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- Series와 DataFrame 기초
- 인덱싱, 필터링 및 불리언 마스크
- GroupBy, 집계 및 피벗 테이블
- 병합, 결합 및 데이터 정리