본문 바로가기

카테고리 없음

파이썬 openpyxl을 사용해서 읽어온 엑셀을 pandas 데이터프레임으로 변환하기

openpyxl을 이용해서 엑셀 파일을 읽어오고 그 내용을 판다스 데이터프레임으로 변환하는 방법을 알아보겠습니다. 다음 사진과 같이 생긴 샘플 데이터를 이용하겠습니다.

 

 

openpyxl을 이용해서 샘플 엑셀 파일을 불러오겠습니다.

 

import openpyxl

wb = openpyxl.load_workbook('sample.xlsx')
sheet = wb.active

 

엑셀 시트 데이터를 데이터프레임으로 바꾸는 방법 

openpyxl의 시트 객체에는 values는 속성이 존재합니다. 이걸 활용하면 손쉽게 데이터프레임으로 변환할 수 있습니다.

 

import pandas as pd

df = pd.DataFrame(sheet.values)
df

 

 

코드 한 줄로 데이터프레임을 만든 것을 확인할 수 있습니다. 다만 한 가지 아쉬운 점은 헤더를 제대로 인식하지 못했다는 겁니다. 이대로 사용할 수는 없으니 판다스를 이용해서 헤더를 만들겠습니다.

 

df.columns = df.iloc[0, :]
df = df.iloc[1:, :]
df

 

 

첫 번째 행 데이터를 이용해서 컬럼명을 만들어준 뒤 첫 번째 행을 삭제했습니다. 이제 완벽하게 정리가 되었습니다.

 

 

더 쉽게 엑셀 파일을 데이터프레임으로 만드는 방법

특별히 openpyxl을 사용해야 하는 경우가 아니라면 사실 판다스 자체 함수인 read_excel를 이용하는 것이 엑셀 파일을 읽어오는 훨씬 손쉬운 방법입니다.

 

import pandas as pd

df = pd.read_excel('sample.xlsx')
df

 

 

 

- 이 글은 아나콘다(Anaconda3)가 설치된  주피터 노트북에서 작성되었습니다.