本文同步发表于小弟自架网站:微确幸资讯站
import pandas as pdimport numpy as np# Create multi-index for year, semester, academic, and genderyear = [109, 110]semester = [1, 2]academic = ['硕士班', '大学部']gender = ['男', '女']index = pd.MultiIndex.from_product([year, semester, academic, gender], names=['学年', '学期', '学制', '性别'])# Create DataFrame with random values and multi-indexdf = 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