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

Python Pandas – 특정 텍스트가 포함된 행을 반복하며 추출하는 방법

Python Pandas에서 원하는 텍스트가 포함된 행을 반복하며 가져오려면 itertuples() 메서드와 find() 메서드를 함께 사용하면 됩니다. itertuples()는 DataFrame의 각 행을 튜플(namedtuple) 형태로 순회(iterate)하는 기능을 제공합니다.


1. 라이브러리 임포트

먼저 필요한 라이브러리를 별칭(alias)과 함께 임포트합니다.

import pandas as pd

2. CSV 파일 준비

이 예제에서 사용할 CSV 파일은 데스크톱에 아래 경로로 저장되어 있습니다.

C:\Users\amit_\Desktop\CarRecords.csv

3. CSV 파일 읽고 DataFrame 생성하기

read_csv() 함수로 CSV 파일을 읽어 Pandas DataFrame을 생성합니다.

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

4. 특정 텍스트가 포함된 행 찾기

itertuples()로 행을 하나씩 순회하면서 find() 메서드로 특정 텍스트가 포함되어 있는지 확인합니다. 여기서는 Car 열에서 "Lamborghini"이라는 텍스트가 포함된 행을 찾습니다.

for k in dataFrame.itertuples():
   if k[1].find('Lamborghini') != -1:
      print(k)

find() 메서드는 문자열 안에서 해당 텍스트가 처음 나타나는 위치(인덱스)를 반환하며, 텍스트가 존재하지 않으면 -1을 반환합니다. 따라서 반환값이 -1이 아니라면 그 행에 원하는 텍스트가 포함되어 있다는 의미입니다.


전체 예제 코드

다음은 지금까지의 과정을 모두 담은 전체 코드입니다.

import pandas as pd

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

# 특정 텍스트가 포함된 행을 반복하며 가져오기
# Car 열에서 'Lamborghini' 텍스트 검색
for k in dataFrame.itertuples():
   if k[1].find('Lamborghini') != -1:
      print(k)

실행 결과

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

Pandas(Index=5, Car='Lamborghini', Place='Chandigarh', UnitsSold=80)
Pandas(Index=8, Car='Lamborghini', Place='Delhi', UnitsSold=100)

출력 결과를 보면 Car 열에 'Lamborghini'이 포함된 두 개의 행(인덱스 5와 8)만 정확하게 필터링되어 출력된 것을 확인할 수 있습니다. 이처럼 itertuples()와 find()를 조합하면 DataFrame 전체를 손쉽게 순회하면서 조건에 맞는 행만 골라낼 수 있습니다.