-->

[파이썬] pandas로 csv에서 특정 값을 가진 행 찾기

많은 양의 데이터를 저장하고 있는 csv에서, 특정 값을 행만 선별해 찾고 싶을 때가 있다. 이럴 때, 파이썬 pandas 모듈을 사용하면 특정 값을 가진 행을 손쉽게 얻을 수 있다. 참고로, 파이썬 pasndas는 'pip install pandas'로 쉽게 할 수 있다.

 

파이썬 pandas 모듈 설치

 

 

데이터 및 찾을 행 선정

naver_place.csv는 네이버 플레이스의 서울시 음식점 정보가 저장되어 있는 csv이다. 해당 csv 파일에서 구와 동이 '동대문구 회기동'인 행을 찾아보자. 

 

 

 

cvs 파일 읽기 (read_csv)

특정 값을 가진 행을 찾기 위해 먼저 read_csv를 사용해 csv 파일을 읽어들인다. 각 열(columns)의 이름은 names=[]로 지정해줄 수 있고, 한글 데이터인 경우 인코딩 없이 그냥 읽으면 깨질 수 있기 때문에 encoding='CP949'로 지정해준다.

 

#-*-coding:utf-8-*-
import pandas as pd

gu = "동대문구"
dong = "회기동"

csv = pd.read_csv('naver_place.csv', \
	names = ['gu','dong','name','category','microReview','commonAddr','addr'], \
	encoding = 'CP949')
    
print(csv)

 

 

csv 출력 결과는 아래와 같다.

 

 

 

csv 에서 특정 값을 가진 행 찾기

특정 값을 가진 행을 찾기 위한 여러 방법이 있겠지만, 아래와 같이 loc을 사용해 행을 인덱싱한 후 내부에 조건문을 써주는 방법이 있다. csv['gu']가 '동대문구'이고 csv['dong']이 '회기동'인 행을 찾는 조건문을 작성했다. 그리고 열은 iloc를 사용해 4개까지만 출력하도록 iloc를 사용해주었다. 참고로, loc는 값을 사용해 검색하고 iloc는 인덱스를 사용해 검색하는 기능을 제공한다.

 

#-*-coding:utf-8-*-
import pandas as pd

gu = "동대문구"
dong = "회기동"

csv = pd.read_csv('naver_place.csv', \
	names = ['gu','dong','name','category','microReview','commonAddr','addr'], \
	encoding = 'CP949')

# 특정 값(동대문구, 회기동)을 가진 행 찾기
find_row = csv.loc[(csv['gu'] == gu) & (csv['dong'] == dong)]

# 열은 4개까지만 출력되도록
find_row = find_row.iloc[:,:4]
print(find_row)

 

 

결과는 아래와 같다.

 

 

댓글

Designed by JB FACTORY