Bắt đầu ngayBắt đầu miễn phí

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_2016gifts_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 df1df2 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

Xem khóa học

Hướng dẫn bài tập

  • Tính cho mỗi nhà tài trợ trong gifts_2016 số 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_2017 số 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())
Chỉnh sửa và Chạy Mã