Selisih absolut antara dua tahun
Sebagai variabel lain, Anda mungkin ingin menambahkan selisih absolut antara jumlah donasi yang dilakukan pada tahun terakhir (2017) dan jumlah donasi pada tahun sebelumnya (2016).
Untuk menambahkan variabel ini ke basetable, dua pandas dataframe gifts_2016 dan gifts_2017 yang masing-masing berisi donasi pada tahun 2016 dan 2017 telah disiapkan untuk Anda.
Ingat bahwa Anda dapat menghitung jumlah kemunculan dalam pandas dataframe df untuk setiap id pada kolom id menggunakan fungsi groupby:
df_grouped = df.groupby("id")["value"].count().reset_index()
dan Anda dapat melakukan left join dua dataframe df1 dan df2 pada merge_id tertentu menggunakan kode berikut:
merged_df = pd.merge(df1, df2, on=["merge_id"], how="left")
Latihan ini adalah bagian dari kursus
Predictive Analytics Tingkat Menengah dengan Python
Petunjuk latihan
- Hitung untuk setiap donor di
gifts_2016jumlah donasi yang dilakukan pada 2016. - Hitung untuk setiap donor di
gifts_2017jumlah donasi yang dilakukan pada 2017. - Tambahkan jumlah donasi yang dilakukan pada 2016 dan 2017 ke basetable.
- Hitung selisih antara jumlah donasi yang dilakukan pada 2017 dan 2016 pada basetable.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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())