ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Calcula para cada donante en gifts_2016 el número de donaciones realizadas en 2016.
  • Calcula para cada donante en gifts_2017 el 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())
Editar y ejecutar código