Absolut skillnad mellan två år
Som en annan variabel kanske du vill lägga till den absoluta skillnaden mellan antalet donationer som gjordes det senaste året (2017) och antalet donationer som gjordes året innan (2016).
För att lägga till den här variabeln i basetable har två pandas-dataramar, gifts_2016 och gifts_2017, med donationer från respektive år skapats åt dig.
Kom ihåg att du kan räkna förekomsterna i en pandas-dataram df för varje id i en kolumn id med hjälp av funktionen groupby:
df_grouped = df.groupby("id")["value"].count().reset_index()
och att du kan göra en vänsterkoppling av två dataramar df1 och df2 på ett givet merge_id med följande kod:
merged_df = pd.merge(df1, df2, on=["merge_id"], how="left")
Den här övningen är en del av kursen
Prediktiv analys på mellannivå i Python
Övningsinstruktioner
- Beräkna antalet donationer som gjordes 2016 för varje givare i
gifts_2016. - Beräkna antalet donationer som gjordes 2017 för varje givare i
gifts_2017. - Lägg till antalet donationer från 2016 och 2017 i bastabellen.
- Beräkna skillnaden mellan antalet donationer som gjordes 2017 och 2016 och lägg till den i bastabellen.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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())