對(duì)比Excel,學(xué)習(xí)pandas數(shù)據(jù)透視表
Excel中做數(shù)據(jù)透視表
① 選中整個(gè)數(shù)據(jù)源;
② 依次點(diǎn)擊“插入”—“數(shù)據(jù)透視表”
③ 選擇在Excel中的哪個(gè)位置,插入數(shù)據(jù)透視表
④ 然后根據(jù)實(shí)際需求,從不同維度展示結(jié)果
⑤ 結(jié)果如下
pandas用pivot_table()做數(shù)據(jù)透視表
1)語(yǔ)法格式
pd.pivot_table(data,index=None,columns=None,
values=None,aggfunc='mean',
margins=False,margins_name='All',
dropna=True,fill_value=None)
2)對(duì)比excel,說(shuō)明上述參數(shù)的具體含義
參數(shù)說(shuō)明:
data 相當(dāng)于Excel中的"選中數(shù)據(jù)源";
index 相當(dāng)于上述"數(shù)據(jù)透視表字段"中的行;
columns 相當(dāng)于上述"數(shù)據(jù)透視表字段"中的列;
values 相當(dāng)于上述"數(shù)據(jù)透視表字段"中的值;
aggfunc 相當(dāng)于上述"結(jié)果"中的計(jì)算類型;
margins 相當(dāng)于上述"結(jié)果"中的總計(jì);
margins_name 相當(dāng)于修改"總計(jì)"名,為其它名稱;
下面幾個(gè)參數(shù),用的較少,記住干嘛的,等以后需要就百度。
dropna 表示是否刪除缺失值,如果為True時(shí),則把一整行全作為缺失值刪除;
fill_value 表示將缺失值,用某個(gè)指定值填充。
案例說(shuō)明
1)求出不同品牌下,每個(gè)月份的銷售數(shù)量之和
① 在Excel中的操作結(jié)果如下
② 在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="銷售數(shù)量",aggfunc=np.sum)
display(df1)結(jié)果如下:
2)求出不同品牌下,每個(gè)地區(qū)、每個(gè)月份的銷售數(shù)量之和
① 在Excel中的操作結(jié)果如下
② 在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=["銷售區(qū)域","月份"],
values="銷售數(shù)量",aggfunc=np.sum)
display(df1)
結(jié)果如下:
3)求出不同品牌不同地區(qū)下,每個(gè)月份的銷售數(shù)量之和
① 在Excel中的操作結(jié)果如下
② 在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=["品牌","銷售區(qū)域"],columns="月份",
values="銷售數(shù)量",aggfunc=np.sum)
display(df1)
結(jié)果如下:
4)求出不同品牌下的“銷售數(shù)量之和”與“貨號(hào)計(jì)數(shù)”
① 在Excel中的操作結(jié)果如下
② 在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=["銷售數(shù)量","貨號(hào)"],
aggfunc={"銷售數(shù)量":"sum","貨號(hào)":"count"},
margins=True,margins_name="總計(jì)")
display(df1)
結(jié)果如下:
推薦閱讀














