Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Pandas로 행 필터링하기 – str.contains() 메서드 완벽 가이드

Pandas에서 특정 텍스트가 포함된 행을 필터링하고 원하는 열의 값을 추출하려면 str.contains() 메서드를 사용하면 됩니다. 이 글에서는 CSV 파일을 불러온 뒤, 특정 문자열을 포함하는 행만 골라내는 방법을 단계별로 살펴보겠습니다.

1. 라이브러리 임포트

먼저 Pandas 라이브러리를 별칭(alias)과 함께 가져옵니다.

import pandas as pd

2. CSV 파일 읽기

read_csv() 함수를 사용해 CSV 파일을 DataFrame으로 불러옵니다. 여기서는 데스크톱에 저장된 파일을 예시로 사용합니다.

dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\CarRecords.csv")

3. 특정 텍스트로 행 필터링

'Car' 열에서 'Lamborghini'이라는 텍스트를 포함하는 행만 선택하려면 다음과 같이 작성합니다.

dataFrame = dataFrame[dataFrame['Car'].str.contains('Lamborghini')]

전체 예제 코드

import pandas as pd

# CSV 파일 읽기
dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\CarRecords.csv")
print("DataFrame...\n", dataFrame)

# "Lamborghini" 텍스트가 포함된 행 선택
dataFrame = dataFrame[dataFrame['Car'].str.contains('Lamborghini')]
print("\nLamborghini 텍스트가 포함된 행 가져오기 ...\n", dataFrame)

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

DataFrame...
          Car       Place   UnitsSold
0        Audi   Bangalore          80
1     Porsche      Mumbai         110
2  RollsRoyce        Pune         100
3         BMW       Delhi          95
4    Mercedes   Hyderabad          80
5 Lamborghini  Chandigarh          80
6        Audi      Mumbai         100
7    Mercedes        Pune         120
8 Lamborghini       Delhi         100

Lamborghini 텍스트가 포함된 행 가져오기 ...
          Car       Place   UnitsSold
5 Lamborghini  Chandigarh          80
8 Lamborghini       Delhi         100

추가 팁

str.contains()는 기본적으로 대소문자를 구분합니다. 대소문자 구분 없이 필터링하려면 case=False 옵션을 사용하세요. 또한 결측값(NaN)이 포함된 열을 다룰 때는 na=False 옵션을 추가하면 오류 없이 안전하게 처리할 수 있습니다.

dataFrame = dataFrame[dataFrame['Car'].str.contains('lamborghini', case=False, na=False)]

이처럼 str.contains() 메서드를 활용하면 대용량 데이터에서도 원하는 조건의 행을 손쉽게 추출할 수 있습니다.