รวมทุกอย่างเข้าด้วยกัน (1)
ลองนึกถึงแบบฝึกหัด รวมทุกอย่างเข้าด้วยกัน ในบทที่แล้ว ที่เราวิเคราะห์ Twitter อย่างง่าย ๆ ด้วยการเขียนฟังก์ชันนับจำนวนทวีตในแต่ละภาษา ผลลัพธ์ของฟังก์ชันนั้นเป็น dictionary ที่มีภาษาเป็น keys และจำนวนทวีตในภาษานั้นเป็น value
ในแบบฝึกหัดนี้ เราจะปรับปรุงการวิเคราะห์ภาษาบน Twitter ให้ยืดหยุ่นมากขึ้น โดยเพิ่ม default argument ที่รับชื่อคอลัมน์เป็นพารามิเตอร์
เพื่อความสะดวก pandas ถูก import ไว้เป็น pd แล้ว และไฟล์ 'tweets.csv' ถูกโหลดเข้า DataFrame ชื่อ tweets_df นอกจากนี้ยังมีโค้ดบางส่วนจากงานก่อนหน้าให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Python เบื้องต้น: การเขียนฟังก์ชัน
คำแนะนำการฝึกหัด
- เติมส่วนหัวของฟังก์ชันให้ครบ โดยระบุพารามิเตอร์สำหรับ DataFrame
dfและพารามิเตอร์col_nameพร้อมกำหนดค่าดีฟอลต์เป็น'lang'สำหรับชื่อคอลัมน์ใน DataFrame - เรียก
count_entries()โดยส่ง DataFrametweets_dfและชื่อคอลัมน์'lang'แล้วกำหนดผลลัพธ์ให้กับresult1โปรดสังเกตว่าเนื่องจาก'lang'คือค่าดีฟอลต์ของพารามิเตอร์col_nameจึงไม่จำเป็นต้องระบุค่านี้อีก - เรียก
count_entries()โดยส่ง DataFrametweets_dfและชื่อคอลัมน์'source'แล้วกำหนดผลลัพธ์ให้กับresult2
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Define count_entries()
def count_entries(____, ____):
"""Return a dictionary with counts of
occurrences as value for each key."""
# Initialize an empty dictionary: cols_count
cols_count = {}
# Extract column from DataFrame: col
col = df[col_name]
# Iterate over the column in DataFrame
for entry in col:
# If entry is in cols_count, add 1
if entry in cols_count.keys():
cols_count[entry] += 1
# Else add the entry to cols_count, set the value to 1
else:
cols_count[entry] = 1
# Return the cols_count dictionary
return cols_count
# Call count_entries(): result1
result1 = ____
# Call count_entries(): result2
result2 = ____
# Print result1 and result2
print(result1)
print(result2)