자니노트

[Python/Excel] 엑셀 파일 읽기 본문

파이썬

[Python/Excel] 엑셀 파일 읽기

zaninote 2023. 2. 24. 14:41

1. 개요

엑셀 파일을 읽어 DATA를 처리하기 위해  pandas, openpyxl(xlsx 지원) 라이브러리를 이용하여 구현하려고 한다.

  • pandas : Pandas는 파이썬에서 사용하는 데이터분석 라이브러리로, 행과 열로 이루어진 데이터 객체를 만들어 다룰 수 있게 되며 보다 안정적으로 대용량의 데이터들을 처리하는데 매우 편리한 도구 입니다
  • openpyxl : openpyxl은 엑셀 파일(.xlsx, .xlsm, .xltx, xltm 등)을 읽고 쓸 수 있는 기능을 제공하는 Python 라이브러리이다. 

2. 설치

>pip install pandas
Collecting pandas
  Downloading pandas-1.5.3-cp39-cp39-win_amd64.whl (10.9 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.9/10.9 MB 32.7 MB/s eta 0:00:00
Collecting pytz>=2020.1
  Downloading pytz-2022.7.1-py2.py3-none-any.whl (499 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 499.4/499.4 kB 15.8 MB/s eta 0:00:00
Requirement already satisfied: python-dateutil>=2.8.1 in c:\users\bestech-bd\anaconda3\envs\uienv\lib\site-packages (from pandas) (2.8.2)
Collecting numpy>=1.20.3
  Downloading numpy-1.24.2-cp39-cp39-win_amd64.whl (14.9 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.9/14.9 MB 38.4 MB/s eta 0:00:00
Requirement already satisfied: six>=1.5 in c:\users\bestech-bd\anaconda3\envs\uienv\lib\site-packages (from python-dateutil>=2.8.1->pandas) (1.16.0)
Installing collected packages: pytz, numpy, pandas

>pip install openpyxl
Collecting openpyxl
  Downloading openpyxl-3.1.1-py2.py3-none-any.whl (249 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 249.8/249.8 kB 16.0 MB/s eta 0:00:00
Collecting et-xmlfile
  Downloading et_xmlfile-1.1.0-py3-none-any.whl (4.7 kB)
Installing collected packages: et-xmlfile, openpyxl
Successfully installed et-xmlfile-1.1.0 openpyxl-3.1.1

3. 샘플 데이터

순서 음성파일명 음성텍스트파일명 저장자막파일명 Vrew저장파일명
1 A02___01_Exodus______ENGESVO2DA.mp3 Chapter 2.1.txt Chapter 2.1.srt Chapter 2.1.vrew
2 A02___02_Exodus______ENGESVO2DA.mp3 Chapter 2.2.txt Chapter 2.2.srt Chapter 2.2.vrew
3 A02___03_Exodus______ENGESVO2DA.mp3 Chapter 2.3.txt Chapter 2.3.srt Chapter 2.3.vrew
4 A02___04_Exodus______ENGESVO2DA.mp3 Chapter 2.4.txt Chapter 2.4.srt Chapter 2.4.vrew
5 A02___05_Exodus______ENGESVO2DA.mp3 Chapter 2.5.txt Chapter 2.5.srt Chapter 2.5.vrew

4. 엑셀 읽기

pandas 를 통해 Dataframe 구조로 가져오면 DATA를 다루는데 편리한 기능을 제공 한다.

import pandas as pd

# 엑셀파일을 열어서 DataFrame으로 읽어오기
df = pd.read_excel('D:\\성경\\변환DATA.xlsx')
print(df)

--------------------------------------------------
   순서                                음성파일명         음성텍스트파일명          저장자막파일명         Vrew저장파일명
0   1  A02___01_Exodus______ENGESVO2DA.mp3  Chapter 2.1.txt  Chapter 2.1.srt  Chapter 2.1.vrew
1   2  A02___02_Exodus______ENGESVO2DA.mp3  Chapter 2.2.txt  Chapter 2.2.srt  Chapter 2.2.vrew
2   3  A02___03_Exodus______ENGESVO2DA.mp3  Chapter 2.3.txt  Chapter 2.3.srt  Chapter 2.3.vrew
3   4  A02___04_Exodus______ENGESVO2DA.mp3  Chapter 2.4.txt  Chapter 2.4.srt  Chapter 2.4.vrew
4   5  A02___05_Exodus______ENGESVO2DA.mp3  Chapter 2.5.txt  Chapter 2.5.srt  Chapter 2.5.vrew

만약 Sheet가 여러개 존재하고 특정 sheet만을 읽어 오려면 아래와 같이 하면 된다.

# Sheet2 이름의 Sheet 가져오기
df = pd.read_excel('D:\\성경\\변환DATA.xlsx', sheet_name='Sheet2')
df = pd.read_excel('D:\\성경\\변환DATA.xlsx', sheet_name=1) # 시트 순서로도 가능

##################
# 그외 기능
##################

# 제한된 수의 행만 데이터 프레임에 로드하려는 경우 nrows 인수를 사용하여 행 수를 지정할 수 있습니다.
df = pd.read_excel('D:\\성경\\변환DATA.xlsx', nrows=2)

# 다음과 같이 skiprows 인수를 통해 스프레드시트의 시작 부분에서 특정 개수의 행을 건너뛰거나 특정 행 목록을 건너뛸 수 있습니다.
df = pd.read_excel('D:\\성경\\변환DATA.xlsx', skiprows=range(2))

# 위의 코드는 처음 5개 행을 건너뛰고 나머지 데이터를 반환합니다. 대신, 다음 코드는 언급된 인덱스가 있는 행을 제외한 모든 행을 반환합니다
df = pd.read_excel('D:\\성경\\변환DATA.xlsx', skiprows=[1, 4,7,10])

#또 다른 유용한 인수는 문자, 이름 또는 위치 번호가 있는 스프레드시트 열을 선택할 수 있는 usecols입니다. 어떻게 작동하는지 봅시다
df = pd.read_excel('D:\\성경\\변환DATA.xlsx', usecols='A:C,E')

# 위의 코드에서 usecols 인수에 할당된 문자열은 쉼표로 구분된 열 G + 를 포함하는 열 범위를 포함합니다. 또한 다음과 같이 열 이름 목록을 제공하고 usecols 인수에 할당할 수 있습니다
df = pd.read_excel('D:\\성경\\변환DATA.xlsx', usecols=['순서', '음성파일명', '음성텍스트파일명'])
# 숫서로도 가능
df = pd.read_excel('D:\\성경\\변환DATA.xlsx', usecols=[0, 1, 2, 4])

df(DataFrame)에서 Data를 읽는 방법은 아래 사이트 참조하기 바란다.

 

참조


http://bigdata.dongguk.ac.kr/lectures/Python/_book/pandas.html

 

5 장 Pandas | 파이썬 프로그래밍 기초

Pandas 데이터 처리와 분석을 위한 라이브러리 행과 열로 이루어진 데이터 객체를 만들어 다룰 수 있음 대용량의 데이터들을 처리하는데 매우 편리 pandas 자료구조 Series: 1차원 DataFrame: 2차원 Panel:

bigdata.dongguk.ac.kr

https://doorbw.tistory.com/172

 

pandas(판다스) 기초 정리

안녕하세요. 문범우입니다. 이번 포스팅에서는 파이썬 라이브러리인 pandas(판다스)에 대해서 알아보도록 하겠습니다. 해당 내용은 flearning의 김길호님의 강의를 바탕으로 작성되었습니다. https://

doorbw.tistory.com

 

 

 

Comments