非公開ファイルを開く
市議会は長期的な傾向を把握したいと考えており、Sam に 2019 年の初め以降のすべてのリクエストを合計するよう依頼しました。これを行うには、Sam は 'gid-requests' バケットにある日次の CSV を読み込み、結合する必要があります。ただし、gid-requests のファイルは非公開です。彼女は自分のキーを使ってアクセスできますが、一般には公開されていません。
この演習では、これらの非公開ファイルを pandas に読み込み、1 つの DataFrame に連結して、Sam が全体像を確認できるように手伝います!
boto3 の S3 クライアントはすでに初期化され、変数 s3 に代入されています。gid-requests 内のすべてのオブジェクト一覧は、変数 response に格納済みです。
この演習はコースの一部です
Python で始める AWS Boto 入門
演習の手順
response内の各ファイルについて、S3 からオブジェクトを読み込みます。- オブジェクトの
StreamingBodyをpandasに読み込み、df_listに追加します。 - すべての DataFrame を
pandasで連結します。 - 結果の 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()