비공개 파일 열기
시 의회는 더 큰 추세를 보고 싶어 하며, Sam에게 2019년 초부터의 모든 요청을 합산해 달라고 요청했어요. 이를 위해 Sam은 'gid-requests' 버킷의 일별 CSV를 읽어 연결해야 합니다. 하지만 gid-requests 파일은 비공개예요. Sam은 자신의 키로 접근할 수 있지만, 외부에서는 접근할 수 없습니다.
이 연습 문제에서는 이러한 비공개 파일을 pandas로 읽어 하나의 DataFrame으로 연결해, Sam이 큰 그림을 볼 수 있도록 도울 거예요!
boto3 S3 클라이언트는 이미 초기화되어 s3 변수에 할당되어 있어요. 또한 gid-requests의 모든 객체 목록은 response 변수에 담겨 있어요.
이 연습은 강의의 일부입니다
Python으로 시작하는 AWS Boto
연습 안내
response의 각 파일에 대해, S3에서 해당 객체를 불러오세요.- 객체의
StreamingBody를pandas로 읽어df_list에 추가하세요. - 모든 DataFrame을
pandas로 연결(concatenate)하세요. - 최종 DataFrame을 미리 살펴보세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
df_list = [ ]
for file in response['Contents']:
# For each file in response load the object from S3
obj = s3.____(____='gid-requests', ____=file['Key'])
# Load the object's StreamingBody with pandas
obj_df = pd.read_csv(obj['____'])
# Append the resulting DataFrame to list
df_list.append(obj_df)
# Concat all the DataFrames with pandas
df = pd.concat(df_list)
# Preview the resulting DataFrame
df.head()