조건에 따라 pandas dataframe에서 행을 삭제하는 방법


다음 구문을 사용하여 조건에 따라 pandas DataFrame의 행을 삭제할 수 있습니다.

방법 1: 단일 조건에 따라 행 삭제

 df = df[df. col1 > 8]

방법 2: 여러 조건에 따라 행 삭제

 df = df[(df. col1 > 8) & (df. col2 != ' A ')]

참고 : drop() 함수를 사용하여 DataFrame에서 행을 삭제할 수도 있지만 이 함수는 단순히 DataFrame을 필터링된 버전에 할당하는 것보다 훨씬 느린 것으로 입증되었습니다.

다음 예는 다음 pandas DataFrame에서 실제로 이 구문을 사용하는 방법을 보여줍니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' pos ': ['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 pos 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에서 행을 삭제하는 방법을 보여줍니다.

 #drop rows where value in 'assists' column is less than or equal to 8
df = df[df. assists > 8] 

#view updated DataFrame
df

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

“지원” 열의 값이 8 이하인 행은 DataFrame에서 제거되었습니다.

방법 2: 여러 조건에 따라 행 삭제

다음 코드는 여러 조건에 따라 DataFrame에서 행을 삭제하는 방법을 보여줍니다.

 #only keep rows where 'assists' is greater than 8 and rebounds is greater than 5
df = df[(df. assists > 8) & (df. rebounds > 5)]

#view updated DataFrame
df

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

DataFrame에 유지한 유일한 행은 어시스트 값이 8 보다 크고 리바운드 값이 5보다 큰 행이었습니다.

| “or” 필터를 적용하는 연산자:

 #only keep rows where 'assists' is greater than 8 or rebounds is greater than 10
df = df[(df. assists > 8) | (df. rebounds > 10)]

#view updated DataFrame
df

	team pos assists rebounds
0 A G 5 11
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

DataFrame에 유지한 유일한 행은 지원 값이 8보다 크 거나 리바운드 값이 10보다 큰 행이었습니다.

이러한 조건 중 하나를 충족하지 않는 행은 삭제되었습니다.

추가 리소스

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

Pandas에서 특정 값이 포함된 행을 삭제하는 방법
Pandas에서 특정 문자열이 포함된 행을 삭제하는 방법
Pandas에서 인덱스별로 행을 삭제하는 방법

의견을 추가하다

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