การดึงข้อมูลจาก Twitter ปริมาณมาก
ทำได้ดีมากกับการแบ่งไฟล์เป็น chunk ในแบบฝึกหัดที่แล้ว ตอนนี้รู้วิธีจัดการกับสถานการณ์ที่ต้องประมวลผลไฟล์ขนาดใหญ่แล้ว ซึ่งเป็นทักษะที่มีประโยชน์มาก!
การประมวลผลไฟล์เป็น chunk เล็ก ๆ ที่จัดการได้ง่ายขึ้นเป็นสิ่งดี แต่การเขียนโค้ดซ้ำ ๆ สำหรับงานเดิมทุกครั้งอาจน่าเบื่อมาก ในแบบฝึกหัดนี้ จะนำโค้ดจากแบบฝึกหัดก่อนหน้ามาทำให้ นำกลับมาใช้ใหม่ได้ โดยบรรจุไว้ใน นิยามฟังก์ชัน
แพ็กเกจ pandas ถูก import มาเป็น pd แล้ว และไฟล์ 'tweets.csv' อยู่ในไดเรกทอรีปัจจุบันพร้อมให้ใช้งาน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Python Toolbox
คำแนะนำการฝึกหัด
- กำหนดฟังก์ชัน
count_entries()ที่มี 3 พารามิเตอร์ พารามิเตอร์แรกคือcsv_fileสำหรับชื่อไฟล์, พารามิเตอร์ที่สองคือc_sizeสำหรับขนาด chunk, และพารามิเตอร์สุดท้ายคือcolnameสำหรับชื่อคอลัมน์ - วนซ้ำผ่านไฟล์ใน
csv_fileโดยใช้forloop ใช้ตัวแปรลูปchunkและวนซ้ำผ่านการเรียกpd.read_csv()โดยส่งc_sizeให้กับchunksize - ในลูปด้านใน ให้วนซ้ำผ่านคอลัมน์ที่ระบุใน
colnameของchunkโดยใช้forloop ใช้ตัวแปรลูปentry - เรียกฟังก์ชัน
count_entries()โดยส่งชื่อไฟล์'tweets.csv', ขนาด chunk10, และชื่อคอลัมน์ที่ต้องการนับ'lang'จากนั้นกำหนดผลลัพธ์ของการเรียกนี้ให้กับตัวแปรresult_counts
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Define count_entries()
def ____():
"""Return a dictionary with counts of
occurrences as value for each key."""
# Initialize an empty dictionary: counts_dict
counts_dict = {}
# Iterate over the file chunk by chunk
for ____ in ____:
# Iterate over the column in DataFrame
for ____ in ____:
if entry in counts_dict.keys():
counts_dict[entry] += 1
else:
counts_dict[entry] = 1
# Return counts_dict
return counts_dict
# Call count_entries(): result_counts
result_counts = ____
# Print result_counts
print(result_counts)