Differenza assoluta tra due anni
Come ulteriore variabile, potresti voler aggiungere la differenza assoluta tra il numero di donazioni effettuate nell’ultimo anno (2017) e quelle dell’anno precedente (2016).
Per aggiungere questa variabile alla basetable, sono stati creati per te due dataframe pandas, gifts_2016 e gifts_2017, con le donazioni effettuate rispettivamente nel 2016 e nel 2017.
Ricorda che puoi contare le occorrenze in un dataframe pandas df per ogni id in una colonna id in un dataframe df usando la funzione groupby:
df_grouped = df.groupby("id")["value"].count().reset_index()
e che puoi eseguire un left join tra due dataframe df1 e df2 su un dato merge_id usando il seguente codice:
merged_df = pd.merge(df1, df2, on=["merge_id"], how="left")
Questo esercizio fa parte del corso
Analisi predittiva intermedia in Python
Istruzioni dell'esercizio
- Calcola per ogni donatore in
gifts_2016il numero di donazioni effettuate nel 2016. - Calcola per ogni donatore in
gifts_2017il numero di donazioni effettuate nel 2017. - Aggiungi alla basetable il numero di donazioni effettuate nel 2016 e nel 2017.
- Calcola nella basetable la differenza tra il numero di donazioni effettuate nel 2017 e nel 2016.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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())