Python實(shí)現(xiàn)數(shù)據(jù)透視表詳解
用Python里的Pandas可以實(shí)現(xiàn),雖然感覺(jué)Excel更方便
1.groupby + agg
不夠直觀,不好看
對(duì)貸款年份,貸款種類創(chuàng)建數(shù)據(jù)透視
train_data.groupby(['year_of_loan', 'class']).agg(d_roat =('isDefault', 'mean'))
2. crosstab
pandas.crosstab(index, columns,values, rownames=None, colnames, aggfunc, margins, margins_name, dropna, normalize)
主要用到的參數(shù):
index:
選哪個(gè)變量做數(shù)據(jù)透視表的行
columns:
選哪個(gè)變量做數(shù)據(jù)透視表的列
values:
要聚合的值
aggfunc:
使用的聚合函數(shù)
margins:
是否添加匯總列/行
margins_name:
匯總行/列的名字
例子
對(duì)貸款年份,貸款種類創(chuàng)建數(shù)據(jù)透視
pd.crosstab(train_data['year_of_loan'], train_data['class'], train_data['loan_id'], aggfunc='count',margins = True, margins_name = '合計(jì)')
可以直接看出交叉組合之后違約比例
pd.crosstab(train_data['year_of_loan'], train_data['class'], train_data['isDefault'], aggfunc='mean')
3.groupby + pivot
train_data.groupby(['year_of_loan', 'class'], as_index = False)['isDefault'].mean().pivot('year_of_loan', 'class', 'isDefault')
pivot_table
pandas.pivot_table(data, values, index, columns, aggfunc, fill_value, margins, dropna, margins_name, observed, sort)
常用參數(shù)與crosstab一致
例子
實(shí)現(xiàn)同樣的數(shù)據(jù)透視表
pandas.pivot_table(data, values, index, columns, aggfunc, fill_value, margins, dropna, margins_name, observed, sort)
pd.pivot_table(train_data[['year_of_loan', 'class', 'isDefault']], values='isDefault', index=['year_of_loan'], columns=['class'], aggfunc='mean')
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注本站的更多內(nèi)容!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。