เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

เปิดไฟล์ส่วนตัว

สภาเมืองต้องการดูแนวโน้มในภาพรวม จึงขอให้ Sam รวบรวมคำร้องทั้งหมดตั้งแต่ต้นปี 2019 เป็นต้นมา Sam จึงต้องอ่านไฟล์ CSV รายวันจาก bucket 'gid-requests' แล้วนำมาต่อกัน อย่างไรก็ตาม ไฟล์ใน gid-requests เป็นไฟล์ส่วนตัว Sam สามารถเข้าถึงได้ด้วย key ของตัวเอง แต่บุคคลภายนอกไม่สามารถเข้าถึงได้

ในแบบฝึกหัดนี้ คุณจะช่วย Sam อ่านไฟล์ส่วนตัวเหล่านี้เข้าสู่ pandas แล้วรวมเป็น DataFrame เดียว!

Sam ได้สร้าง S3 client ของ boto3 และกำหนดให้กับตัวแปร 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()
แก้ไขและรันโค้ด