본문 바로가기
Python/Pandas

[Python] Pandas DataFrame 조건 데이터 가져오기 loc[ ], isin()

by coding_su 2022. 11. 24.

📝파이썬 판다스 데이터프레임 조건 데이터 가져오기

조건 하나를 만족하는 데이터 전체 가져오기 / 특정 컬럼 가져오기

# 해당 컬럼의 값이 3이상인 데이터(행)만 가져오기
>>> df.loc[ df['컬럼'] >= 3 ]

# 해당 컬럼a의 값이 3이상인 특정 컬럼들만 가져오기
>>> df.loc[ df['컬럼a'] >= 3, ['컬럼', '컬럼'] ] # 콜론(:)도 가능

조건 두개를 만족하는 데이터 전체 가져오기 ( &를 사용한다 )

# 해당 컬럼의 값이 4이상이고 8이하인 데이터(행)만 가져오기
>>> df.loc[ (df['컬럼'] >= 4) & (df['컬럼'] <= 8) ]

# 해당 컬럼a의 값이 4이상이고 8이하인 특정 컬럼들만 가져오기
>>> df.loc[ (df['컬럼'] >= 4) & (df['컬럼'] <= 8), ['컬럼','컬럼'] ] # 콜론(:)도 가능

함수를 사용해 특정 조건을 만족하는 데이터만 가져오기도 가능하다

# 해당 컬럼에서 최대값과 일치하는 데이터(행을) 가져오기
>>> df.loc[ (df['컬럼']) == (df['컬럼'].max()) ]

# 해당 컬럼에서 최대값과 일치하는 특정 컬럼들만 가져오기
>>> df.loc[ (df['컬럼']) == (df['컬럼'].max()), ['컬럼','컬럼'] ] # 콜론(:)도 가능

조건을 여러개 사용해야할 경우 isin으로도 처리가 가능하다

# 조건이 여러개일때 정석 방법
>>> df.loc[ (df['컬럼'] >= 95) & ((df['컬럼'] == '컬럼 데이터') | (df['컬럼'] == '컬럼 데이터')) ]

# isin 사용하면 줄일 수 있다
>>> df.loc[ (df['컬럼'] >= 95) & (df['컬럼'].isin(['컬럼 데이터', '컬럼 데이터'])) ]

댓글