시작하기무료로 시작하기

비공개 파일 열기

시 의회는 더 큰 추세를 보고 싶어 하며, Sam에게 2019년 초부터의 모든 요청을 합산해 달라고 요청했어요. 이를 위해 Sam은 'gid-requests' 버킷의 일별 CSV를 읽어 연결해야 합니다. 하지만 gid-requests 파일은 비공개예요. Sam은 자신의 키로 접근할 수 있지만, 외부에서는 접근할 수 없습니다.

이 연습 문제에서는 이러한 비공개 파일을 pandas로 읽어 하나의 DataFrame으로 연결해, Sam이 큰 그림을 볼 수 있도록 도울 거예요!

boto3 S3 클라이언트는 이미 초기화되어 s3 변수에 할당되어 있어요. 또한 gid-requests의 모든 객체 목록은 response 변수에 담겨 있어요.

이 연습은 강의의 일부입니다

Python으로 시작하는 AWS Boto

강의 보기

연습 안내

  • response의 각 파일에 대해, S3에서 해당 객체를 불러오세요.
  • 객체의 StreamingBodypandas로 읽어 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()
코드 편집 및 실행