Pandas loc을 사용하여 여러 조건에 따라 행을 선택하는 방법


다음 방법을 사용하여 여러 조건에 따라 Pandas DataFrame에서 행을 선택할 수 있습니다.

방법 1: 여러 조건을 충족하는 행 선택

 df. loc [((df[' col1 '] == ' A ') & (df[' col2' ] == ' G '))]

방법 2: 여러 조건 중 하나를 충족하는 행 선택

 df. loc [((df[' col1 '] > 10) | (df[' col2' ] < 8))]

다음 예에서는 실제로 다음 pandas DataFrame에서 이러한 각 메서드를 사용하는 방법을 보여줍니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
df

	team position assists rebounds
0 A G 5 11
1 A G 7 8
2 A F 7 10
3 A F 9 6
4 B G 12 6
5 B G 9 5
6 B F 9 9
7 B F 4 12

방법 1: 여러 조건을 충족하는 행 선택

다음 코드는 DataFrame에서 팀이 “A”이고 위치가 “G”인 행만 선택하는 방법을 보여줍니다.

 #select rows where team is equal to 'A' and position is equal to 'G'
df. loc [((df[' team '] == ' A ') & (df[' position '] == ' G '))]

	team position assists rebounds
0 A G 5 11
1 A G 7 8

DataFrame에는 이 두 조건을 모두 충족하는 행이 두 개뿐이었습니다.

방법 2: 여러 조건 중 하나를 충족하는 행 선택

다음 코드는 DataFrame에서 어시스트가 10보다 크 거나 리바운드가 8보다 작은 행만 선택하는 방법을 보여줍니다.

 #select rows where assists is greater than 10 or rebounds is less than 8
df. loc [((df[' assists '] > 10) | (df[' rebounds '] < 8))]

	team position assists rebounds
3 A F 9 6
4 B G 12 6
5 B G 9 5

DataFrame에는 이 두 조건을 모두 충족하는 행이 3개뿐이었습니다.

참고: 이 두 예에서는 두 가지 조건을 기준으로 행을 필터링했지만 & 및 | 속성 . 연산자를 사용하면 원하는 만큼 많은 조건을 필터링할 수 있습니다.

추가 리소스

다음 튜토리얼에서는 Pandas에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

Pandas의 조건을 기반으로 새 열을 만드는 방법
Pandas에서 특정 값이 포함된 행을 삭제하는 방법
Pandas에서 중복 행을 제거하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다