[목차]
0. 여는 말
1. read_excel
2. to_excel
3. 맺는 말
0. 여는 말
지난 글에서 csv 형태의 파일을 읽거나 내보낼 수 있는 함수인 read_csv와 to_csv의 개념과 활용 예시에 대해 다뤄보았는데요 (아래 글 참조),
pandas - read_csv / to_csv 함수 설명 및 활용 예시
[목차] 0. 여는 말 1. read_csv 2. to_csv 3. 맺는 말 0. 여는 말 지난 글에서 Pandas에 대한 간략한 소개와 향후 어떤 방향으로 글들을 쓸 것인지에 대해 얘기해 보았는데요 (아래 글 참조), pandas - 라이브러
lifeisstruggle.tistory.com
이번 글에서는 excel 파일 (=확장자가 xlsx인 파일)을 읽거나 내보내는 함수인 read_excel과 to_excel에 대해 다뤄볼 것입니다.
excel 파일은 '여러 개의 시트를 가질 수 있고, 각각마다 시트명을 가진다'는 점이 csv 파일과 구별되는 가장 큰 차이점 중 하나인데요,
이러한 차이점이 read_excel, to_excel 함수에 어떤 영향을 주는지를 중심으로 두 함수를 소개해보려 합니다.
글 시작하겠습니다!
1. read_excel
- 기능: xlsx 형태의 파일을 읽어오기
- 필수 입력값: 1개 ('파일 경로를 포함한 파일명')
- 유의점: pandas 라이브러리 먼저 import하기 / 파일 경로 올바르게 입력하기 / 가져오려는 시트가 1번째 시트가 아닌 경우, 입력값에 시트명 추가하기
이름에서부터 알 수 있듯, 'excel 파일을 읽는' 함수입니다.
read_excel은 '파일 경로를 포함한 파일명'을 필수 input 값으로 받으며, 그 외 다양한 파라미터 값들을 추가로 설정할 수 있습니다.
read_excel 함수에서는 유의할 점이 3가지 있습니다.
첫째, read_excel 함수는 pandas 라이브러리 안에 내장되어 있기 때문에 pandas 라이브러리를 먼저 불러온 후에 사용 가능하다는 점,
둘째, 파일 경로를 올바르게 입력해 주어야 한다는 점입니다.
(파일 경로 설정 시 필요한 개념인 절대경로, 상대경로에 대한 자세한 내용은 아래 글을 참고해 주세요 :) )
Python에서 파일 경로(Path) 설정할 때 알면 좋은 개념들
[목차] 0. 여는 말 1. 절대 경로 vs. 상대 경로 2. 경로에서 마침표(' . ') 개수에 따른 의미 차이 3. 맺는 말 0. 여는 말 오늘은 파이썬에서 파일 경로를 설정하는 2가지 방법, 그리고 경로 설정에서 마
lifeisstruggle.tistory.com
마지막으로 셋째, 시트명을 의미하는 파라미터인 sheet_name을 별도로 설정하지 않으면 기본값인 첫 번째 시트가 불러와지니, 만약 불러오려는 시트가 첫 번째 시트가 아니라면 반드시 함수 사용 시 sheet_name 파라미터에 원하는 시트의 이름을 입력값으로 넣어 주어야 한다는 점입니다.
pandas는 통상 'pd'로 줄여서 import하며, 함수 사용 시 pandas 안에 있는 함수임을 나타내기 위해 ". (마침표)"로 연결해서 'pd.read_excel'의 형태로 표기합니다.
이해를 돕기 위해 간단한 예시를 들어보겠습니다
아래와 같은 구조로 파일들이 있다고 가정해보겠습니다.
여기서 우리는 'pandas_ex01_to_read_excel.xlsx' 파일의 첫번째 시트인 'naver' 시트를 불러올 것이고, 아래와 같은 코드를 통해 불러올 수 있습니다.
import pandas as pd #통상 pandas를 pd로 줄여서 import합니다
df = pd.read_excel("./data_excel/pandas_ex01_to_read_excel.xlsx") #df라는 객체를 만들고, 거기에 xlsx 파일의 첫번째 시트 데이터를 불러와서 할당합니다
위와 같이 불러오는 것이 가장 기본적인 형태이며, 위처럼 다른 파라미터 없이 파일명만을 입력값으로 주는 경우, 첫 번째 시트의 데이터를 가져오게 됩니다.
만약 첫 번째가 아닌 다른 시트의 데이터를 가져오고 싶다면, sheet_name이라는 파라미터에 해당 시트의 이름을 입력해 주어야 합니다.
그 예시도 같이 살펴보겠습니다.
2. to_excel
- 기능: xlsx 형태의 파일을 읽어오기
- 필수 입력값: 1개 ('파일 경로를 포함한 파일명')
- 유의점: pandas 라이브러리 먼저 import하기 / 파일 경로 올바르게 입력하기 / 가져오려는 시트가 1번째 시트가 아닌 경우, 입력값에 시트명 추가하기
이 함수는 read_excel과는 반대로 데이터를 'xlsx 형태로 밖으로 내보내는' 함수입니다.
to_excel 함수 또한 read_excel과 동일하게 '파일 경로를 포함한 파일명'을 필수 input 값으로 받으며, 그 외 다양한 파라미터들을 추가로 설정할 수 있습니다.
to_excel도 위에서 read_excel의 유의점으로 언급했던 3가지를 동일하게 가집니다. to_excel 또한 pandas 라이브러리를 먼저 불러와야 하고, 파일 경로를 올바르게 입력해 주어야 하며, 필요 시 sheet_name 파라미터에 값을 입력해 주어야 합니다.
한편, 시트명에 해당하는 sheet_name 파라미터 입력 시, 비록 파라미터 이름은 동일하지만 그 의미가 약간 다릅니다.
read_excel의 경우, 엑셀 파일 내 시트가 여러 개일 수 있기 때문에 그 중 하나를 선택하기 위해 '읽어오고자 하는 시트의 이름'을 입력하는 것이라면, to_excel은 내보내는 데이터는 항상 하나의 테이블 데이터이기 때문에 '내보내고자 하는 데이터가 들어갈 시트의 이름'을 입력하는 것이라는 차이점이 있습니다.
to_excel도 이해를 도울 수 있는 간단한 예시를 들어보겠습니다.
폴더 구조 및 파일을 저장할 위치는 아래와 같습니다.
그리고 우리는 위 경로에 아래와 같은 데이터를 내보내 저장할 것입니다.
여기서 우리는 'pandas_ex01_to_write_excel.xlsx' 라는 이름으로 파일을 내보낼 것이고, 아래와 같은 코드를 통해 가능합니다.
import pandas as pd #통상 pandas를 pd로 줄여서 import합니다
df2.to_excel("./data_excel/pandas_ex01_to_write_excel.xlsx") #df2라는 객체에 담긴 데이터를, 해당 경로에 xlsx 파일로 내보냅니다
위와 같이 내보내는 것이 가장 기본적인 형태이며, 경우에 따라 파라미터들을 추가하여 가공된 형태로 xlsx 파일로 내보낼 수 있습니다.
한편 위와 같이 파일을 내보낼 경우, 기본값으로 시트 이름이 'Sheet1'으로 해서 내보내집니다.
만약 시트에 특정한 이름을 부여해서 내보내고 싶다면, sheet_name 파라미터에 해당 시트의 이름을 입력해 주어야 합니다.
그 예시를 같이 살펴보겠으며, 여기서는 행번호를 나타내는 index열 (위 사진에서 '0, 1, 2'가 있는 A열)을 제외하기 위해 index 파라미터도 함께 추가해보겠습니다.
3. 맺는 말
pandas에는 그 외에도 json, html, xml 등 다양한 형태의 데이터들을 읽고 내보낼 수 있는 다양한 IO 함수들을 가지고 있습니다.
저희는 이번에 그 중 하나인 xlsx에 대해 다뤄보았던 것이었습니다.
(xlsx 외에도 많이 다루는 파일 형태는 csv가 있으며, 관련 내용은 아래 글을 참고해 주세요 :) )
pandas - read_csv / to_csv 함수 설명 및 활용 예시
[목차] 0. 여는 말 1. read_csv 2. to_csv 3. 맺는 말 0. 여는 말 지난 글에서 Pandas에 대한 간략한 소개와 향후 어떤 방향으로 글들을 쓸 것인지에 대해 얘기해 보았는데요 (아래 글 참조), pandas - 라이브러
lifeisstruggle.tistory.com
지금까지 특정한 확장자의 파일을 읽어오거나 내보내는 함수에 대해 다뤄보았습니다.
다음 글에서는 이렇게 읽어오거나 내보낸 데이터가 어떻게 생겼는지 (ex. 어떤 열들을 가지고 있고, 어떤 데이터들을 가지고 있는지)를 간략하게 살펴볼 수 있는 head / tail 함수에 대해 다뤄보겠습니다.
그러면 오늘 글은 여기서 마치겠습니다.
읽으시면서 이해가 어려운 부분들은, 댓글로 문의 주시면 성심껏 답변드리겠습니다 :)
오늘도 긴 글 읽으시느라 고생 많으셨습니다!
우리들의 스트러글(struggle)하는 현생, 화이팅입니다!
'퍼포마의 야근근절을 위한 코딩' 카테고리의 다른 글
우리가 사용할 개발 도구(환경) - Jupyter Notebook의 특징 및 장단점 (0) | 2022.10.12 |
---|---|
우리가 사용할 개발 언어 - Python의 장단점 (0) | 2022.10.10 |
Python에서 파일 경로(Path) 설정할 때 알면 좋은 개념들 (0) | 2022.10.04 |
pandas - read_csv / to_csv 함수 설명 및 활용 예시 (2) | 2022.10.03 |
pandas - 라이브러리 소개 및 향후 글 전개 방향 (0) | 2022.09.28 |