CommencezCommencez gratuitement

Différence absolue entre deux années

Comme autre variable, vous pourriez 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 au basetable, deux dataframes pandas, gifts_2016 et gifts_2017, regroupant respectivement les dons faits en 2016 et en 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 une colonne id au moyen de 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é en utilisant le code suivant :

merged_df = pd.merge(df1, df2, on=["merge_id"], how="left")

Cette activité fait partie du cours

Analytique prédictive intermédiaire en Python

Voir le cours

Instructions de l’exercice

  • 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 en 2017 à la table de base.
  • Calculez, dans la table de base, la différence entre le nombre de dons effectués en 2017 et en 2016.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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())
Modifier et exécuter le code