首页后端开发PythonPython里怎么样做数据透视表?

Python里怎么样做数据透视表?

时间2024-03-23 11:12:03发布访客分类Python浏览812
导读:Python里怎么样做数据透视表?在我们工作中经常会遇到需要做数据透视表,它能很快的帮我们收集我们想要的数据,而在用Python里的Pandas可以实现,虽然不如Excel方便,但是效果也还不错,接下来我们一起了解看看吧。 1.group...

Python里怎么样做数据透视表?在我们工作中经常会遇到需要做数据透视表,它能很快的帮我们收集我们想要的数据,而在用Python里的Pandas可以实现,虽然不如Excel方便,但是效果也还不错,接下来我们一起了解看看吧。

1.groupby + agg

不够直观,不好看

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

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)

主要用到的参数:

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

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

values:要聚合的值

aggfunc:使用的聚合函数

margins:是否添加汇总列/行

margins_name:汇总行/列的名字

例子

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

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


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

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)

常用参数与crosstab一致

例子

实现同样的数据透视表

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')

总结

以上就是Python里实现数据透视表的几种方法,有些展现效果不是很好,有些数据显示的很清晰,有需要的朋友可以参考了解看看,本文代码有一定的参考价值。最好,想要了解更多可以继续浏览网络其他相关的文章。

文本转载自脚本之家

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Python里怎么样做数据透视表?
本文地址: https://pptw.com/jishu/651301.html
Oracle存储过程中变量的声明有几种方式 PHP8中强类型null和false的使用有什么好处

游客 回复需填写必要信息