開始使用免費開始

兩個年份間的絕對差

作為另一個變數,你可能想加入 2017 年與前一年(2016 年)捐款次數的「絕對差」。 要把這個變數加入 basetable,我們已為你建立兩個 pandas 資料框 gifts_2016gifts_2017,分別包含 2016 與 2017 年的捐款紀錄。

回顧一下,你可以在 pandas 資料框 df 中,針對欄位 id 的每個值計算出現次數,方法是使用 groupby 函式:

df_grouped = df.groupby("id")["value"].count().reset_index()

另外,你也可以使用以下程式碼,將兩個資料框 df1df2merge_id 進行左連接(left join):

merged_df = pd.merge(df1, df2, on=["merge_id"], how="left")

本練習屬於課程

Python 中級預測分析

檢視課程

練習說明

  • 針對 gifts_2016 中的每位捐款人,計算其在 2016 年的捐款次數。
  • 針對 gifts_2017 中的每位捐款人,計算其在 2017 年的捐款次數。
  • 將 2016 與 2017 年的捐款次數加入 basetable。
  • 在 basetable 中計算 2017 年與 2016 年捐款次數的差。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# 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())
編輯並執行程式碼