Publish:

태그: , ,

카테고리:

Python pandas

pandas module

pandas 를 통해 엑셀을 읽어와보자.

1

읽고자 하는 폴더의 엑셀파일은 다음 두 파일이다.

일단 파일 하나하나를 열어서 확인해보자.

우선 엑셀파일에 어떤 시트가 존재하는지 확인해보자.

1
2
3
4
5
import pandas

excel_folder = '/Users/baegono/Desktop/Python/PythonBlog/ExcelFile'

print(pandas.read_excel(excel_folder + '/Programmer.xlsx', sheet_name=None).keys())

read_excel 함수는 내부에서 openpyxl 모듈을 사용하기에 해당 모듈을 다운받아야 한다.

1

이제 각각의 시트를 열어보자.

1
2
3
4
5
import pandas

excel_folder = '/Users/baegono/Desktop/Python/PythonBlog/ExcelFile'

print(pandas.read_excel(excel_folder + '/Programmer.xlsx', sheet_name='Editor'))

경로는 말 그대로 경로이고 sheet_name 은 None = 전체 시트 / 0~N = 시트 인덱스 / 시트이름 으로 불러올 수 있다.

1

다음과 같이 테이블 형식으로 읽어올 수 있다.

위의 코드처럼 파일이름을 지정해서 읽어오는 것은 굉장히 비효율적이다.

os module 을 통해 해당 경로에 존재하는 파일들을 가져와서 한번에 읽어보자.

1
2
3
4
5
6
7
import os

excel_folder = '/Users/baegono/Desktop/Python/PythonBlog/ExcelFile'

walk = os.walk(excel_folder)
for w in walk:
    print(w)

우선 os.walk() 함수에 대해 알아보자.

위의 코드를 실행시키면 다음과 같은 결과를 출력한다.

1

이는 os.walk() 가 경로/경로 아래의 폴더/경로 아래의 파일 을 tuple 로 반환하기 때문이다.

이를 활용하여 엑셀파일만을 뽑아보자.

1
2
3
4
for path, dirs, files in os.walk(excel_folder):
  for file in files:
    if file.endswith('.xlsx'):
      print(file)

1

폴더에 저장된 두 개의 엑셀 파일이름이 출력된다.

이제 파일을 읽어보자.

1
2
3
4
5
6
7
for path, dirs, files in os.walk(excel_folder):
  for file in files:
    if file.endswith('.xlsx'):
      excel_file = pandas.read_excel(
        path + '/' + file, 
        sheet_name=None)
      print(excel_file)

이전에 사용했던 read_excel()함수를 사용하면 다음과 같이 출력된다. 1

테이블 형식으로 이쁘게 출력되지 않는다.

방법을 조금 바꿔서 출력해보자.

1
2
3
4
5
6
7
for path, dirs, files in os.walk(excel_folder):
  for file in files:
    if file.endswith('.xlsx'):
      excel_file = pandas.ExcelFile(path + '/' + file)
      for sheet in excel_file.sheet_names:
        dataframe = excel_file.parse(sheet)
        print(dataframe)

1

이제 보기 편하게 출력이 되었다.

이러한 방법으로 원하는 경로의 엑셀파일을 한번에 읽어볼 수 있다.

각 함수는 다양한 옵션을 가지고 있기에 원하는 부분만을 출력할 수도 있다.

방문해 주셔서 감사합니다!😊

업데이트:

댓글남기기