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
![](https://blog.kakaocdn.net/dn/vonGG/btqCz554nlO/6SWWWNIBglmTSCIgUeB3I0/img.png)
- 이 글은 아나콘다(Anaconda3)가 설치된 주피터 노트북에서 작성되었습니다.