0Pricing
Python Academy · 강의

인덱싱, 필터링 및 불리언 마스크

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 second

nlargest 및 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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Series와 DataFrame 기초
  2. 인덱싱, 필터링 및 불리언 마스크
  3. GroupBy, 집계 및 피벗 테이블
  4. 병합, 결합 및 데이터 정리
← Python Academy(으)로 돌아가기