Абсолютна різниця між двома роками
Як ще одну змінну, ви можете додати абсолютну різницю між кількістю пожертв, зроблених торік (2017), і кількістю пожертв за попередній рік (2016).
Щоб додати цю змінну до basetable, для вас уже створено два датафрейми pandas — gifts_2016 і gifts_2017 — із пожертвами за 2016 і 2017 роки відповідно.
Згадайте, що ви можете порахувати кількість входжень у датафреймі pandas df для кожного ідентифікатора у стовпці id, використавши функцію groupby:
df_grouped = df.groupby("id")["value"].count().reset_index()
а також що ви можете виконати ліве зʼєднання двох датафреймів df1 і df2 за полем merge_id, використавши такий код:
merged_df = pd.merge(df1, df2, on=["merge_id"], how="left")
Ця вправа є частиною курсу
Середній рівень Predictive Analytics у Python
Інструкції до вправи
- Обчисліть для кожного донора в
gifts_2016кількість пожертв, зроблених у 2016 році. - Обчисліть для кожного донора в
gifts_2017кількість пожертв, зроблених у 2017 році. - Додайте кількість пожертв за 2016 і 2017 роки до базової таблиці.
- Обчисліть у базовій таблиці різницю між кількістю пожертв у 2017 і 2016 роках.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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())