Otwieranie prywatnego pliku
Rada Miejska chce zobaczyć szerszy obraz sytuacji i poprosiła Sam o zsumowanie wszystkich zgłoszeń od początku 2019 roku. Aby to zrobić, Sam musi odczytać dzienne pliki CSV z bucketu 'gid-requests' i połączyć je w jeden zbiór. Pliki gid-requests są jednak prywatne – Sam ma do nich dostęp dzięki swojemu kluczowi, ale nie są publicznie dostępne.
W tym ćwiczeniu pomożesz Sam zobaczyć pełny obraz sytuacji: wczytasz te prywatne pliki do pandas i połączysz je w jeden DataFrame!
Sam zainicjalizowała już klienta S3 biblioteki boto3 i przypisała go do zmiennej s3. Wszystkie obiekty z bucketu gid-requests wylistowała w zmiennej response.
To ćwiczenie jest częścią kursu
Wprowadzenie do AWS Boto w Pythonie
Instrukcje do ćwiczenia
- Dla każdego pliku z
responsewczytaj obiekt z S3. - Załaduj
StreamingBodyobiektu dopandasi dodaj wynik dodf_list. - Połącz wszystkie DataFramy za pomocą
pandas. - Wyświetl podgląd powstałego DataFrame.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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()