Mở một tệp riêng tư
Hội đồng Thành phố muốn xem xu hướng tổng thể và đã yêu cầu Sam cộng dồn tất cả yêu cầu kể từ đầu năm 2019. Để làm được điều này, Sam phải đọc các tệp CSV hằng ngày từ bucket 'gid-requests' và nối chúng lại. Tuy nhiên, các tệp gid-requests là riêng tư. Cô ấy có quyền truy cập bằng khóa của mình, nhưng mọi người không thể truy cập.
Trong bài tập này, bạn sẽ giúp Sam có cái nhìn toàn cảnh bằng cách đọc các tệp riêng tư này vào pandas và nối chúng thành một DataFrame duy nhất!
Cô ấy đã khởi tạo client S3 của boto3 và gán vào biến s3. Cô ấy đã liệt kê tất cả các đối tượng trong gid-requests vào biến response.
Bài tập này là một phần của khóa học
Giới thiệu về AWS Boto trong Python
Hướng dẫn bài tập
- Với mỗi tệp trong
response, tải đối tượng từ S3. - Tải
StreamingBodycủa đối tượng vàopandas, rồi thêm vàodf_list. - Nối tất cả DataFrame bằng
pandas. - Xem trước DataFrame kết quả.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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()