Analytique prédictive intermédiaire en Python
Nele Verbiest
Senior Data Scientist @PythonPredictions





# Dates de référence
start_2017 = datetime.date(2017,1,1)
start_2016 = datetime.date(2016,1,1)
start_2015 = datetime.date(2015,1,1)
# Dons l'an dernier et l'année précédente
gifts_2016 = gifts[
(gifts["date"]<start_2017)
& (gifts["date"]>=start_2016)]
gifts_2015_and_2016 = gifts[
(gifts["date"]<start_2017)
& (gifts["date"]>=start_2015)]
# Nombre de dons sur ces périodes par donateur number_gifts_2016 = gifts_2016.groupby("id")["amount"].size().reset_index() number_gifts_2016.columns = ["donor_ID", "number_gifts_2016"]number_gifts_2015_and_2016 = gifts_2015_and_2016 .groupby("id")["amount"].size().reset_index() number_gifts_2015_and_2016.columns = ["donor_ID", "number_gifts_2015_and_2016"]
# Ajouter ces valeurs à la table de base basetable = pd.merge(basetable, number_gifts_2016, on="donor_ID", how = "left") basetable = pd.merge(basetable, number_gifts_2015_and_2016, on="donor_ID", how = "left")# Calculer le ratio entre l'an dernier et les deux dernières années basetable["ratio_2015_to_2015_and_2016"] = basetable["number_gifts_2016"] / basetable["number_gifts_2015_and_2016"]
print(basetable.head())
donor_id number_gifts_2016 number_gifts_2015_and_2016 ratio_2015_to_2015_and_2016
1 Na 5 Na
2 9 12 0.75
3 3 6 0.5
Analytique prédictive intermédiaire en Python