天天看點

對比Excel,學習pandas資料透視表

Excel中做資料透視表

① 選中整個資料源;

對比Excel,學習pandas資料透視表

② 依次點選“插入”—“資料透視表”

對比Excel,學習pandas資料透視表

③ 選擇在Excel中的哪個位置,插入資料透視表

對比Excel,學習pandas資料透視表

④ 然後根據實際需求,從不同次元展示結果

對比Excel,學習pandas資料透視表

⑤ 結果如下

對比Excel,學習pandas資料透視表

pandas用pivot_table()做資料透視表

1)文法格式

pd.pivot_table(data,index=None,columns=None,
               values=None,aggfunc='mean',
               margins=False,margins_name='All',
               dropna=True,fill_value=None)
           

複制

2)對比excel,說明上述參數的具體含義

對比Excel,學習pandas資料透視表

參數說明:

  • data 相當于Excel中的"選中資料源";
  • index 相當于上述"資料透視表字段"中的行;
  • columns 相當于上述"資料透視表字段"中的列;
  • values 相當于上述"資料透視表字段"中的值;
  • aggfunc 相當于上述"結果"中的計算類型;
  • margins 相當于上述"結果"中的總計;
  • margins_name 相當于修改"總計"名,為其它名稱;

下面幾個參數,用的較少,記住幹嘛的,等以後需要就百度。

  • dropna 表示是否删除缺失值,如果為True時,則把一整行全作為缺失值删除;
  • fill_value 表示将缺失值,用某個指定值填充。

案例說明

1)求出不同品牌下,每個月份的銷售數量之和

① 在Excel中的操作結果如下

對比Excel,學習pandas資料透視表

② 在pandas中的操作如下

df = pd.read_excel(r"C:\Users\黃偉\Desktop\pivot_table.xlsx")
display(df.sample(5))

df.insert(1,"月份",df["銷售日期"].apply(lambda x:x.month))
display(df.sample(5))

df1 = pd.pivot_table(df,index="品牌",columns="月份",
                     values="銷售數量",aggfunc=np.sum)
display(df1)           

複制

結果如下:

對比Excel,學習pandas資料透視表

2)求出不同品牌下,每個地區、每個月份的銷售數量之和

① 在Excel中的操作結果如下

對比Excel,學習pandas資料透視表

② 在pandas中的操作如下

df = pd.read_excel(r"C:\Users\黃偉\Desktop\pivot_table.xlsx")
display(df.sample(5))

df.insert(1,"月份",df["銷售日期"].apply(lambda x:x.month))
display(df.sample(5))

df1 = pd.pivot_table(df,index="品牌",columns=["銷售區域","月份"],
                     values="銷售數量",aggfunc=np.sum)
display(df1)
           

複制

結果如下:

對比Excel,學習pandas資料透視表

3)求出不同品牌不同地區下,每個月份的銷售數量之和

① 在Excel中的操作結果如下

對比Excel,學習pandas資料透視表

② 在pandas中的操作如下

df = pd.read_excel(r"C:\Users\黃偉\Desktop\pivot_table.xlsx")
display(df.sample(5))

df.insert(1,"月份",df["銷售日期"].apply(lambda x:x.month))
display(df.sample(5))

df1 = pd.pivot_table(df,index=["品牌","銷售區域"],columns="月份",
                     values="銷售數量",aggfunc=np.sum)
display(df1)
           

複制

結果如下:

對比Excel,學習pandas資料透視表

4)求出不同品牌下的“銷售數量之和”與“貨号計數”

① 在Excel中的操作結果如下

對比Excel,學習pandas資料透視表

② 在pandas中的操作如下

df = pd.read_excel(r"C:\Users\黃偉\Desktop\pivot_table.xlsx")
display(df.sample(5))

df.insert(1,"月份",df["銷售日期"].apply(lambda x:x.month))
display(df.sample(5))

df1 = pd.pivot_table(df,index="品牌",columns="月份",
                     values=["銷售數量","貨号"],
                     aggfunc={"銷售數量":"sum","貨号":"count"},
                     margins=True,margins_name="總計")
display(df1)
           

複制

結果如下:

對比Excel,學習pandas資料透視表