loading
본문 바로가기
IT(SW)

파이썬(Python) Pandas 엑셀파일 읽기 및 쓰기 + 조건 추출

by Dandy Brain 2021. 6. 7.
반응형

블로그를 운영하게 되면 각종 데이터를 처리해야 할 일이 빈번하게 생기는데 정기적으로 연재되는 간행물을 기획하고 있다면 가급적 입력자료만 있다고 가정할 때 자동으로 처리가 되면 포스팅을 하는데 상당한 시간을 벌 수가 있습니다. 물론 데이터 처리를 할 때 엑셀을 활용해서도 자동화가 가능하긴 하지만 꽤나 복잡한 작업을 해야 할 뿐만 아니라 다양한 확장성에 있어서 파이썬을 넘어서기엔 무리수가 있습니다. 따라서 엑셀보다는 파이썬에 적응하길 권장드리며 이번 포스팅에서는 모든 자료를 처리하기에 앞서서 기초적이면서도 가장 중요한 데이터 읽기와 저장하기에 대해서 알아보도록 하겠습니다.

 

Mission

1. 엑셀 파일 example_excel.xlsx를 파이썬 Pandas로 읽어오기

2. 1열에 문자 '가'를 하나라도 포함하는 행을 추출하기

3. 추출한 결과를 엑셀파일 result_file.xlsx로 저장하기

example_excel.xlsx 엑셀파일 내용

 

사용된 엑셀파일

본 포스팅 설명을 위해 사용된 엑셀 파일을 다운로드 받으실 수 있습니다. example_excel.xlsx는 조건 추출이 이루어지기 전인 원시자료이며, result_file.xlsx는 아래 전체 코드를 통해 원하는 조건으로 추출한 결과 파일입니다.

example_excel.xlsx
0.01MB
result_file.xlsx
0.01MB

 

전체 코드

엑셀파일을 읽어서 원하는 조건인 1열 문자 '가'를 포함하는 행을 추출한 후 result_file.xlsx로 저장하는 전체 코드입니다. 코드만 활용하고자 하시는 분은 복사해서 파이썬 코드에 붙여 넣고 사용하시고 코드 한줄한줄 이해가 필요하신 분은 아래 코드 해석을 확인하시기 바랍니다.

import pandas as pd

excel_source = pd.read_excel('example_excel.xlsx')
int_line = excel_source['1열'].str.contains('가')
save_int_line = excel_source[int_line]
print (save_int_line)

save_int_line.to_excel('result_file.xlsx')

 

코드 해석

데이터 분석을 위해 다양하게 사용되는 pandas라는 라이브러리를 불러와서 코드 내에서는 pd로 줄여서 사용하겠다는 의미입니다.

import pandas as pd

 

Pandas는 방대한 양의 명령어를 내포하고 있으며, 그중에서 read_excel은 해석 그대로 excel을 읽어오는 명령어입니다. 따라서 pd.read_excel는 pandas 라이브러리의 read_excel 명령어를 사용하겠다는 의미이고, ('example_excel.xlsx')은 대상 파일의 경로와 파일명을 의미합니다. 본 설명에서는 기본 디렉터리에 있기 때문에 별도로 파일 경로를 지정하지 않았으며, 파일 경로는 ('C:\users\example_excel.xlsx') 형태로 지정하시면 되겠습니다. 이렇게 불러들인 엑셀 파일의 내용을 excel_source 변수로 저장하겠다라는 의미입니다.

excel_source = pd.read_excel('example_excel.xlsx')

 

이제 앞서 excel_source에 저장된 엑셀파일 내용의 1열이 문자 '가'를 하나라도 포함할 경우의 값을 int_line에 저장하겠다는 의미입니다. 여기서 str은 문자열 처리 함수이고 contains는 특정 값을 포함하는 값을 찾아서 True, False로 나타내는 함수입니다.

int_line = excel_source['1열'].str.contains('가')

 

excel_source의 1열이 '가'를 포함한 게 True라면 save_int_line 변수에 저장하라는 의미입니다.

save_int_line = excel_source[int_line]

 

save_int_line에 할당된 값이 정상적으로 저장되었는지를 확인하기 위해 print 구문을 사용합니다. 특별히 확인이 필요 없을 경우에는 해당 줄을 삭제해도 무방합니다.

print (save_int_line)

 

to_excel은 엑셀로 저장할 때 사용하는 명령어이며, save_int_line에 할당된 정보를 result.xlsx로 저장하겠다는 의미입니다.

save_int_line.to_excel('result_file.xlsx')
반응형

댓글