AWS S3에 있는 엑셀데이터를 Pands의 Data Frame 형태로 읽어오겠습니다.
1. AWS S3 Client 생성
import boto3
accessKey = '본인 aws 접근 키'
secretKey = '본인 aws 비밀 키'
region = '리전 명'
# s3 클라이언트 생성
s3 = boto3.client('s3', aws_access_key_id=accessKey, aws_secret_access_key=secretKey, region_name=region)
S3의 bucket과 연결해줄 client를 생성한다.
Excel 파일 하나 읽어오기
import os
bucket_name = '가져오려는 데이터의 버킷 명'
prefix = '버킷 밑의 하위경로/파일 명'
가져올 버킷 명과 세부 파일 경로 + 파일 명을 변수에 저장해 준다.
import pandas as pd
obj = s3.get_object(Bucket=bucket_name, Key=prefix)
df = pd.read_excel(io.BytesIO(obj['Body'].read()))
print(df)
그리고 만들어준 client를 이용해 데이터를 읽어와 pandas의 data frame으로 변환해 준다.
df 를 출력해보면, 엑셀의 내용과 row수 column 수를 리턴해 준다.
Excel 파일 여러개 읽어오기
여러개의 엑셀파일을 읽어올 경우 읽어올 엑셀파일의 정보를 file_list 변수가 가지고 있다고 가정한다.
all_df = pd.DataFrame() # 전체 엑셀 데이터를 합칠 data frame
for file in file_list:
obj = s3.get_object(Bucket=bucket_name, Key=file)
df = pd.read_excel(io.BytesIO(obj['Body'].read()))
all_df.append(df, ignore_index=True)
file_list 에는 버킷의 하위 파일 경도들을 직접 list로 만들어 넣어도 되고
버킷의 원하는 경로 밑의 파일 리스트를 가져와도 된다.
all_df는 전체 엑셀 데이터를 하나로 합쳐줄 data frame이며,
엑셀파일을 하나씩 df 로 변환해 all_df에 붙여주는 코드이다.
▼▼▼ 원하는 경로의 하위 파일 리스트 가져오는 방법 ▼▼▼
도움이 되셨다면 공감(하트) 부탁드립니다.
감사합니다. :)
[AWS EC2] 인스턴스 파일 전송 방법 (FTP, FTPS FileZilla 사용) (0) | 2021.09.24 |
---|---|
[AWS EC2] 인스턴스 터미널 사용 방법 (ssh 연결) (0) | 2021.09.24 |
[AWS EC2] 인스턴스 삭제 방법 (인스턴스 종료) (0) | 2021.07.16 |
[AWS S3] python 에서 AWS S3 데이터 리스트(object list) 가져오기 (0) | 2021.07.15 |
[AWS SageMaker] Jupyter 텐서보드 사용방법 및 접속 URL (0) | 2021.06.21 |