[파이썬] pandas로 csv에서 특정 값을 가진 행 찾기
- 프로그래밍/파이썬
- 2020. 6. 14. 21:27
반응형
많은 양의 데이터를 저장하고 있는 csv에서, 특정 값을 행만 선별해 찾고 싶을 때가 있다. 이럴 때, 파이썬 pandas 모듈을 사용하면 특정 값을 가진 행을 손쉽게 얻을 수 있다. 참고로, 파이썬 pasndas는 'pip install 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)
결과는 아래와 같다.
'프로그래밍 > 파이썬' 카테고리의 다른 글
[파이썬] collections 모듈, 리스트 요소별 개수 쉽게 구하기 (2) | 2020.06.18 |
---|---|
[파이썬] pandas, csv 특정 열 값을 리스트로 변경하기 (2) | 2020.06.15 |
[파이썬] 네이버 플레이스, 맛집 (JSON 데이터) 크롤링 (2) (19) | 2020.06.13 |
[파이썬] 네이버 플레이스, 맛집 (JSON 데이터) 크롤링 (1) (8) | 2020.06.12 |
파이썬 wordcloud를 사용한 한글 명사 시각화 (8) | 2020.02.15 |