Différence absolue entre deux années
Comme autre variable, vous pouvez vouloir ajouter la différence absolue entre le nombre de dons effectués l’an dernier (2017) et le nombre de dons effectués l’année précédente (2016).
Pour ajouter cette variable à la basetable, deux dataframes pandas gifts_2016 et gifts_2017 contenant respectivement les dons de 2016 et de 2017 ont été préparés pour vous.
Rappelez-vous que vous pouvez compter les occurrences dans un dataframe pandas df pour chaque identifiant dans la colonne id en utilisant la fonction groupby :
df_grouped = df.groupby("id")["value"].count().reset_index()
et que vous pouvez effectuer une jointure gauche entre deux dataframes df1 et df2 sur un merge_id donné avec le code suivant :
merged_df = pd.merge(df1, df2, on=["merge_id"], how="left")
Cet exercice fait partie du cours
Analytique prédictive intermédiaire en Python
Instructions
- Calculez, pour chaque donateur dans
gifts_2016, le nombre de dons effectués en 2016. - Calculez, pour chaque donateur dans
gifts_2017, le nombre de dons effectués en 2017. - Ajoutez le nombre de dons effectués en 2016 et 2017 à la basetable.
- Calculez, dans la basetable, la différence entre le nombre de dons de 2017 et de 2016.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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())