开发者

Python实现数据透视表详解

开发者 https://www.devze.com 2022-12-03 13:51 出处:网络 作者: weixin_12162011
目录1.groupby + agg2. crosstab3.groupby + pivotpivot_table总结用python里的Pandas可以实现,虽然感觉Excel更方便
目录
  • 1.groupby + agg
  • 2. crosstab
  • 3.groupby + pivot
  • pivot_table
  • 总结

用python里的Pandas可以实现,虽然感觉Excel更方便

1.groupby + agg

不够直观,不好看

对贷款年份,贷款种类创建数据透视

train_data.groupby(['year_of_loan', 'class']).agg(d_roat =('isDefault', 'mean'))

Python实现数据透视表详解

2. crosstab

pandas.crosstab(index, columns,values, rownames=None, colnames, 
				aggfunc, margins, margins_name, dropna, normalize)

主要用到的参数:

index:选哪个变量做数据透视表的行

columns:选哪个变量做数据透视表的列

values:要聚合的值

aggfunc:使用的聚合函数

margins:是否添加汇总列/行编程客栈

margins_name:汇总行/列的名字

例子

对贷款年份,贷款种类创建数据透视

pd.crosstab(train_datasExzaITM['year_of_loan'], train_data['class'], train_data['loan_id']sExzaITM, aggfunc='count',margins = True, margins_name = '合计')

Python实现数据透视表详解

可以直接看出交叉组合之后违约比例

pd.crosstab(train_data['year_of_loan'], train_data['class'], train_data['isDefault'], aggfunc='mean')编程客栈

Python实现数据透视表详解

3.groupby + pivot

train_data.groupby(['year_of_loan', 'class'], as_index = False)['isDefault'].mean().pivot('year_of_loan', 'class', 'isDefault')

Python实现数据透视表详解

pivot_table

pandas.pivot_table(data, values, index, columns, aggfunc, fill_value, 
					margins, dropna, margins_name, observed, sort)

常用参数与crosstab一致http://www.cppcns.com

例子

实现同样的数据透视表

pandas.pivot_table(data, values, index, columns, aggfunc, fill_value, 
					margins, dropna, margins_name, observed, sort)

Python实现数据透视表详解

pd.pivot_table(train_data[['year_of_loan', 'class', 'isDefault']],
			   values='isDefault', index=['year_of_loan'], columns=['class'], 
			   aggfunc='mean')

Python实现数据透视表详解

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号