Chênh lệch tuyệt đối giữa hai năm
Là một biến khác, bạn có thể muốn thêm độ chênh lệch tuyệt đối giữa số lượt quyên góp trong năm gần nhất (2017) và số lượt quyên góp của năm trước đó (2016).
Để thêm biến này vào basetable, hai pandas dataframe gifts_2016 và gifts_2017 chứa các khoản quyên góp lần lượt của năm 2016 và 2017 đã được tạo sẵn cho bạn.
Nhớ rằng bạn có thể đếm số lần xuất hiện trong một pandas dataframe df cho từng id trong cột id bằng hàm groupby:
df_grouped = df.groupby("id")["value"].count().reset_index()
và bạn có thể left join hai dataframe df1 và df2 theo một merge_id cho trước bằng đoạn mã sau:
merged_df = pd.merge(df1, df2, on=["merge_id"], how="left")
Bài tập này là một phần của khóa học
Phân tích dự đoán nâng cao với Python
Hướng dẫn bài tập
- Tính cho mỗi nhà tài trợ trong
gifts_2016số lượt quyên góp thực hiện trong năm 2016. - Tính cho mỗi nhà tài trợ trong
gifts_2017số lượt quyên góp thực hiện trong năm 2017. - Thêm số lượt quyên góp của năm 2016 và 2017 vào basetable.
- Tính chênh lệch giữa số lượt quyên góp năm 2017 và năm 2016 trong basetable.
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.
# Number of gifts in 2016 and 2017 for each donor
gifts_2016_bydonor = gifts_2016.____("____").____().reset_index()
gifts_2016_bydonor.columns = ["donor_ID", "donations_2016"]
gifts_2017_bydonor = gifts_2017.____("____").____().reset_index()
gifts_2017_bydonor.columns = ["donor_ID", "donations_2017"]
# Add number of gifts in 2016 and 2017 to the basetable
basetable = pd.merge(____, ____, on="donor_ID", how="____")
basetable = pd.merge(____, ____, on="donor_ID", how="____")
# Calculate the number of gifts in 2017 minus number of gifts in 2016
basetable.fillna(0)
basetable["gifts_2017_min_2016"] = ____["____"] - ____["____"]
print(basetable.head())