반응형

파이썬, Pandas로 엑셀 파일 읽기, 쓰기 

 

글. 수알치 오상문.

 

다음 코드는 파이썬에서 판다스를 이용한 엑셀 파일 읽기 쓰기 예제입니다. 

(예제 엑셀 파일은 첨부했으니 다운로드 받아서 사용하세요.)

 

lotto.csv
0.02MB
lotto.xlsx
0.04MB

import pandas as pd
# csv 엑셀 파일 읽기  
df = pd.read_csv("c:/temp/lotto.csv")
print(df)
print("="*45)
# csv 엑셀 파일 읽기
df = pd.read_csv("c:/temp/lotto.csv")
print(df)
print("="*45)
# xlsx 엑셀 파일 읽기 
df = pd.read_excel("c:/temp/lotto.xlsx", engine = "openpyxl")
print(df)
print("="*45)
# xlsx 엑셀 파일 읽기 옵션 지정
# 시트명 지정("Sheet1"), 헤더 줄 지정(첫줄은 0)
df = pd.read_excel("c:/temp/lotto.xlsx", engine = "openpyxl",
                   sheet_name="lotto", header=0)
print(df)
print("="*45)
# 인덱스 컬럼 지정 (번호 또는 이름)
df = pd.read_excel("c:/temp/lotto.xlsx", engine = "openpyxl",
                   index_col=0) 
print(df)
print("="*45)
# 특정 컬럼들만 가져오기 (인덱스 컬럼 번호는 가져온 컬럼에서 선택됨)
df = pd.read_excel("c:/temp/lotto.xlsx", engine = "openpyxl",
                   index_col=0, usecols="A,B,C,D") 
print(df)
print("="*45)
# 컬럼 이름 변경하기
df = pd.read_excel("c:/temp/lotto.xlsx", engine = "openpyxl",
                   index_col=0, usecols="A,B,C,D",
                   names=['회차','번호1','번호2','번호3']) 
print(df)
print("="*45)
# 데이터프레임 자료를 엑셀 파일로 저장하기
# (윈도우 기본 한글 코드 cp949 지정) 
df.to_csv('c:/temp/test1.csv', encoding='cp949') # CSV 파일 저장 
df.to_excel('c:/temp/test1.xlsx')               # xlsx 파일 저장 

 

[실행 결과]

      no  num1  num2  num3  num4  num5  num6
0      1    10    23    29    33    37    40
1      2     9    13    21    25    32    42
2      3    11    16    19    21    27    31
3      4    14    27    30    31    40    42
4      5    16    24    29    40    41    42
..   ...   ...   ...   ...   ...   ...   ...
890  891     9    13    28    31    39    41
891  892     4     9    17    18    26    42
892  893     1    15    17    23    25    41
893  894    19    32    37    40    41    43
894  895    16    26    31    38    39    41

[895 rows x 7 columns]
=============================================
      no  num1  num2  num3  num4  num5  num6
0      1    10    23    29    33    37    40
1      2     9    13    21    25    32    42
2      3    11    16    19    21    27    31
3      4    14    27    30    31    40    42
4      5    16    24    29    40    41    42
..   ...   ...   ...   ...   ...   ...   ...
890  891     9    13    28    31    39    41
891  892     4     9    17    18    26    42
892  893     1    15    17    23    25    41
893  894    19    32    37    40    41    43
894  895    16    26    31    38    39    41

[895 rows x 7 columns]
=============================================
      no  num1  num2  num3  num4  num5  num6
0      1    10    23    29    33    37    40
1      2     9    13    21    25    32    42
2      3    11    16    19    21    27    31
3      4    14    27    30    31    40    42
4      5    16    24    29    40    41    42
..   ...   ...   ...   ...   ...   ...   ...
890  891     9    13    28    31    39    41
891  892     4     9    17    18    26    42
892  893     1    15    17    23    25    41
893  894    19    32    37    40    41    43
894  895    16    26    31    38    39    41

[895 rows x 7 columns]
=============================================
      no  num1  num2  num3  num4  num5  num6
0      1    10    23    29    33    37    40
1      2     9    13    21    25    32    42
2      3    11    16    19    21    27    31
3      4    14    27    30    31    40    42
4      5    16    24    29    40    41    42
..   ...   ...   ...   ...   ...   ...   ...
890  891     9    13    28    31    39    41
891  892     4     9    17    18    26    42
892  893     1    15    17    23    25    41
893  894    19    32    37    40    41    43
894  895    16    26    31    38    39    41

[895 rows x 7 columns]
=============================================
     num1  num2  num3  num4  num5  num6
no                                     
1      10    23    29    33    37    40
2       9    13    21    25    32    42
3      11    16    19    21    27    31
4      14    27    30    31    40    42
5      16    24    29    40    41    42
..    ...   ...   ...   ...   ...   ...
891     9    13    28    31    39    41
892     4     9    17    18    26    42
893     1    15    17    23    25    41
894    19    32    37    40    41    43
895    16    26    31    38    39    41

[895 rows x 6 columns]
=============================================
     num1  num2  num3
no                   
1      10    23    29
2       9    13    21
3      11    16    19
4      14    27    30
5      16    24    29
..    ...   ...   ...
891     9    13    28
892     4     9    17
893     1    15    17
894    19    32    37
895    16    26    31

[895 rows x 3 columns]
=============================================
     번호1  번호2  번호3
회차                
1     10   23   29
2      9   13   21
3     11   16   19
4     14   27   30
5     16   24   29
..   ...  ...  ...
891    9   13   28
892    4    9   17
893    1   15   17
894   19   32   37
895   16   26   31

[895 rows x 3 columns]
=============================================

반응형

+ Recent posts