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

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

第一個範例

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

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

先看一下欄位名稱是MultiIndex:

df1.columns

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

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

第二個範例

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

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

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

df2.columns

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

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

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *