開啟私有檔案
市議會想了解長期趨勢,要求 Sam 統計自 2019 年初以來的所有請求。為了做到這點,Sam 需要從 'gid-requests' bucket 讀取每日的 CSV,然後將它們串接起來。不過,gid-requests 檔案是私有的。她可以用她的金鑰存取,但外界無法存取。
在這個練習中,你將協助 Sam 將這些私有檔案讀入 pandas,並把它們合併成一個 DataFrame!
她已經初始化 boto3 的 S3 用戶端並指定給變數 s3。她也已經把 gid-requests 中的所有物件列在變數 response 裡。
本練習屬於課程
Python 中的 AWS Boto 入門
練習說明
- 對於
response中的每個檔案,從 S3 載入該物件。 - 將物件的
StreamingBody讀入pandas,並附加到df_list。 - 使用
pandas串接所有 DataFrame。 - 預覽合併後的 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()