Absolute verschil tussen twee jaren
Als extra variabele wil je misschien het absolute verschil toevoegen tussen het aantal donaties in het laatste jaar (2017) en het jaar daarvoor (2016).
Om deze variabele aan de basetable toe te voegen, zijn er twee pandas-dataframes gifts_2016 en gifts_2017 voor je aangemaakt met respectievelijk de donaties in 2016 en 2017.
Onthoud dat je het aantal voorkomens in een pandas-dataframe df per id in de kolom id kunt tellen met de groupby-functie:
df_grouped = df.groupby("id")["value"].count().reset_index()
en dat je twee dataframes df1 en df2 een left join kunt laten doen op een gegeven merge_id met de volgende code:
merged_df = pd.merge(df1, df2, on=["merge_id"], how="left")
Deze oefening maakt deel uit van de cursus
Gevorderde voorspellende analyse in Python
Oefeninstructies
- Bereken voor elke donateur in
gifts_2016het aantal donaties in 2016. - Bereken voor elke donateur in
gifts_2017het aantal donaties in 2017. - Voeg het aantal donaties in 2016 en 2017 toe aan de basetable.
- Bereken het verschil tussen het aantal donaties in 2017 en 2016 in de basetable.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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())