디렉토리 안에 있는 여러 개의 Excel 파일을 하나씩 열어 확인하는 것은 번거로운 작업입니다. Python에서는 Glob 모듈과 read_excel() 메서드를 함께 사용하면 특정 폴더 아래의 모든 Excel 파일을 자동으로 찾아 Pandas DataFrame으로 손쉽게 불러올 수 있습니다.
예시 데이터 준비
이번 예제에서는 데스크톱 폴더에 다음과 같이 두 개의 Excel 파일이 저장되어 있다고 가정하겠습니다.
- Sales1.xlsx
- Sales2.xlsx
1단계: 파일 경로 설정 및 파일 목록 가져오기
먼저 Excel 파일들이 위치한 경로를 지정합니다. 그런 다음 glob.glob() 함수를 사용해 해당 경로에서 확장자가 .xlsx인 모든 파일 목록을 가져옵니다.
path = "C:\\Users\\amit_\\Desktop\\"
filenames = glob.glob(path + "*.xlsx")
print('File names:', filenames)2단계: 반복문으로 모든 Excel 파일 읽기
가져온 파일 목록을 for 반복문으로 순회하면서 각 파일을 pd.read_excel()로 읽어 DataFrame 형태로 출력합니다.
for file in filenames:
print("Reading file = ", file)
print(pd.read_excel(file))전체 코드
지금까지의 과정을 하나로 합친 전체 코드는 다음과 같습니다.
import pandas as pd
import glob
# 데스크톱 디렉토리에서 Excel 파일 가져오기
path = "C:\\Users\\amit_\\Desktop\\"
# 확장자가 .xlsx인 모든 파일 읽기
filenames = glob.glob(path + "*.xlsx")
print('File names:', filenames)
# 반복문으로 모든 Excel 파일 순회
for file in filenames:
# Excel 파일 읽기
print("Reading file = ", file)
print(pd.read_excel(file))실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다. 각 파일의 이름이 먼저 표시되고, 이어서 해당 파일의 내용이 DataFrame으로 출력되는 것을 확인할 수 있습니다.
File names:['C:\\Users\\amit_\\Desktop\\Sales1.xlsx','C:\\Users\\amit_\\Desktop\\Sales2.xlsx']
Reading file = C:\Users\amit_\Desktop\Sales1.xlsx
Car Place UnitsSold
0 Audi Bangalore 80
1 Porsche Mumbai 110
2 RollsRoyce Pune 100
Reading file = C:\Users\amit_\Desktop\Sales2.xlsx
Car Place UnitsSold
0 BMW Delhi 95
1 Mercedes Hyderabad 80
2 Lamborgini Chandigarh 80정리 및 추가 팁
이처럼 Glob 모듈과 read_excel() 메서드를 조합하면 수십 개의 Excel 파일도 몇 줄의 코드로 일괄 처리할 수 있습니다.
- 다른 확장자 처리: 구버전 Excel 파일(.xls)까지 포함하려면 패턴을
*.xls*로 지정하면 됩니다. - 여러 시트가 있는 경우:
sheet_name=None옵션을 사용하면 파일 내 모든 시트를 사전(dict) 형태로 한 번에 읽을 수 있습니다. - DataFrame 병합: 읽어온 파일들을 하나로 합치고 싶다면
pd.concat()을 활용해 리스트에 담긴 DataFrame들을 결합할 수 있습니다.