pivot_table多層索引問(wèn)題

pivot_table可以實(shí)現(xiàn)Excel數(shù)據(jù)透視表的功能,但是經(jīng)過(guò)pivot_table函數(shù)處理后的dataframe的列是多層索引,需要轉(zhuǎn)化成單層索引,具體步驟如下:

1、使用pivot_table函數(shù),建立數(shù)據(jù)透視表

df_1為數(shù)據(jù)源,包含5列,amount列為數(shù)值列,用于聚合;
創(chuàng)建數(shù)據(jù)透視表,index=['group_series', 'buy_no'],columns=['xmonth'],NA值用0填充,結(jié)果如下:


df_1_out=pd.pivot_table(df_1, index=['group_series', 'buy_no'], columns=['xmonth'], values=['amount'], aggfunc='sum', fill_value=0)
df_1_out
2、列索引處理
# 查看列索引
df_1_out.columns
# 查看一級(jí)列索引
df_1_out.columns.levels[0]

# 查看二級(jí)列索引
df_1_out.columns.levels[1]

# 過(guò)濾一級(jí)列索引
df_1_out.columns=df_1_out.columns.droplevel(level=0)
查看一級(jí)列索引

查看二級(jí)列索引

過(guò)濾一級(jí)列索引
3、行索引處理
# 查看行索引
df_1_out.index
# 重置行索引
df_1_out.reset_index(inplace=True)
df_1_out.index
重置行索引

最終數(shù)據(jù)結(jié)果如下:


最終結(jié)果

pivot_table()簡(jiǎn)介:

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

values:要聚合的列或列的列表
index:數(shù)據(jù)透視的index,從原始數(shù)據(jù)的列中篩選
columns:數(shù)據(jù)透視表的columns,從原始數(shù)據(jù)的列中篩選
aggfunc:用于聚合的函數(shù),默認(rèn)為numpy,mean,支持numpy計(jì)算方法
fill_value:填充N(xiāo)A值,默認(rèn)不填充
margins:添加行列的總計(jì),默認(rèn)不顯示
dropna:如果整行都為NA值,則進(jìn)行丟棄,默認(rèn)丟棄
margins_name:在margins參數(shù)為true時(shí),用來(lái)修改margins的名稱(chēng)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容