iT邦幫忙

1

Python學習筆記: Pandas pivot_table 範例說明

  • 分享至 

  • xImage
  •  

本文同步發表於小弟自架網站:微確幸資訊站

import pandas as pd
import numpy as np

# Create multi-index for year, semester, academic, and gender
year = [109, 110]
semester = [1, 2]
academic = ['碩士班', '大學部']
gender = ['男', '女']
index = pd.MultiIndex.from_product([year, semester, academic, gender],
                           names=['學年', '學期', '學制', '性別'])

# Create DataFrame with random values and multi-index
df = pd.DataFrame(np.random.randint(300,size=(len(year)*len(semester)*len(academic)*len(gender)
                                              ,1)),index=index,columns=["學生人數"])
df

https://ithelp.ithome.com.tw/upload/images/20230425/201223352OrE6v0qN8.jpg

第一個範例

將性別的變數向右延展成為寬表格:

df1 = pd.pivot_table(df, values=['學生人數'], columns=['性別'], index=['學年', '學期', '學制']).reset_index()
df1

https://ithelp.ithome.com.tw/upload/images/20230425/20122335e0quHclysS.jpg

先看一下欄位名稱是MultiIndex:

df1.columns

https://ithelp.ithome.com.tw/upload/images/20230425/20122335lgcQe76wM1.jpg

將MultiIndex欄名結合成字串後做為新欄名

df1.columns = [''.join(tup) for tup in df1.columns]
df1

https://ithelp.ithome.com.tw/upload/images/20230425/20122335ClNEYiVVCa.jpg

第二個範例

將學制、性別的變數向右延展成為寬表格:

df2 = pd.pivot_table(df, values=['學生人數'], columns=[ '學制', '性別'], index=['學年', '學期']).reset_index()
df2

https://ithelp.ithome.com.tw/upload/images/20230425/20122335DqkPpEXTbU.jpg

先看一下欄位名稱是三層的MultiIndex:

df2.columns

https://ithelp.ithome.com.tw/upload/images/20230425/20122335E6QEakMI1f.jpg

一樣將MultiIndex欄名結合成字串後做為新欄名

df2.columns = [''.join(tup) for tup in df2.columns]
df2

https://ithelp.ithome.com.tw/upload/images/20230425/20122335i6id38Qq1E.jpg


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

我要留言

立即登入留言