파이썬에서 엑셀 읽고 쓰기(pd.to_excel), how to read and write excel files in Pandas , Python

안녕하세요 jay입니다.
오늘은 python으로 excel 파일을 읽는법에 대해 알아보겠습니다.
여러가지 방법이 있지만, 오늘은 Pandas를 이용해서 읽어 보도록 하겠습니다.

1. 데이터를 엑셀로 쓰기

먼저 데이터 프레임을 생성하고, 데이터 프레임을 엑셀로 써보겠습니다.
데이터 프레임에 대해서는 아래 링크로 들어가셔서 읽어 보시길 바랍니다.

import pandas as pd

names = ['KIM','LEE','JUNG','SHIN','JIN','PARK']
lectures = ['KOR','ENG','MATH']
scores = [[84,87,78],[21,15,84],[88,78,99],[15,45,88],[66,77,88],[99,100,98]]

# make a DataFrame
d1 = pd.DataFrame(scores, index = names, columns = lectures)
print(d1)

"""
      KOR  ENG  MATH
KIM    84   87    78
LEE    21   15    84
JUNG   88   78    99
SHIN   15   45    88
JIN    66   77    88
PARK   99  100    98
"""

# write DataFrame to Excel
d1.to_excel('./scores.xls', encoding = 'utf-8')

d1이라는 2차원 배열 DataFrame을 생성하고, d1을 현재 폴더 내에 scores.xls라는 파일을 utf-8이라는 encoding 방식으로 읽어 저장했습니다. 아래와 같이 파일이 생성 되었습니다.





이제 저장된 엑셀을 읽고, 옵션들을 하나씩 알아보도록 하겠습니다.

2. 데이터를 엑셀로 읽기

# how to read excel files 

import pandas as pd

df = pd.read_excel('./scores.xls')
print(df)
"""
  Unnamed: 0  KOR  ENG  MATH
0        KIM   84   87    78
1        LEE   21   15    84
2       JUNG   88   78    99
3       SHIN   15   45    88
4        JIN   66   77    88
5       PARK   99  100    98
"""

# index_col, usecols , header
# 1. index_col

df = pd.read_excel('./scores.xls', index_col = 0)
print(df)

"""
      KOR  ENG  MATH
KIM    84   87    78
LEE    21   15    84
JUNG   88   78    99
SHIN   15   45    88
JIN    66   77    88
PARK   99  100    98
"""

# 2. usecols

df = pd.read_excel('./scores.xls', usecols = [1,2])
print(df)

"""
   KOR  ENG
0   84   87
1   21   15
2   88   78
3   15   45
4   66   77
5   99  100
"""

# 3. header

df = pd.read_excel('./scores.xls', header = 1)
print(df)

"""
    KIM  84   87  78
0   LEE  21   15  84
1  JUNG  88   78  99
2  SHIN  15   45  88
3   JIN  66   77  88
4  PARK  99  100  98
"""

파이썬으로 엑셀을 읽으려면 pandas의 read_excel을 사용하면 됩니다. 사용하실 때, index_col, use_cols,
header가 있습니다.
index_col : 할당된 값이 열 인덱스이다.
use_cols : 열 인덱스 기준으로 엑셀 파일을 잘라 데이터 프레임에 저장하는 역할을 한다.
header :  해당 인덱스는 행 인덱스이며,  컬럼이 된다.

댓글