Diferencia absoluta entre dos años
Como otra variable, quizá quieras añadir la diferencia absoluta entre las donaciones realizadas el último año (2017) y el número de donaciones realizadas el año anterior (2016).
Para añadir esta variable a la basetable, se han construido para ti dos dataframes de pandas, gifts_2016 y gifts_2017, con las donaciones realizadas en 2016 y 2017, respectivamente.
Recuerda que puedes contar las apariciones en un dataframe de pandas df para cada id en una columna id usando la función groupby:
df_grouped = df.groupby("id")["value"].count().reset_index()
y que puedes hacer un left join entre dos dataframes df1 y df2 sobre un merge_id usando el siguiente código:
merged_df = pd.merge(df1, df2, on=["merge_id"], how="left")
Este ejercicio forma parte del curso
Análisis predictivo intermedio en Python
Instrucciones del ejercicio
- Calcula para cada donante en
gifts_2016el número de donaciones realizadas en 2016. - Calcula para cada donante en
gifts_2017el número de donaciones realizadas en 2017. - Añade el número de donaciones realizadas en 2016 y 2017 a la basetable.
- Calcula en la basetable la diferencia entre el número de donaciones realizadas en 2017 y en 2016.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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())