pivot函数 excel(pivot函数 python)

pivot函数 excel(pivot函数 python)1 pivot 一般状态下 数据在 DataFrame 会以压缩 stacked 状态存放 例如上面的 Gender 两个类别被叠在一列中 pivot 函数可将某一列作为新的 cols 然而 pivot 函数具有很强的局限性 除了功能上较少之外 还不允许 values 中出现重复的行列索引对 pair 例如下面的语句就会报错 因此 更多的时候会选择使用强大的 pivot table 函数 2

大家好,我是讯享网,很高兴认识大家。



python dataframe 生成row number_数据分析
讯享网

python dataframe 生成row number_人工智能_02

1. pivot

一般状态下,数据在DataFrame会以压缩(stacked)状态存放,例如上面的Gender,两个类别被叠在一列中,pivot函数可将某一列作为新的cols:

然而pivot函数具有很强的局限性,除了功能上较少之外,还不允许values中出现重复的行列索引对(pair),例如下面的语句就会报错:

因此,更多的时候会选择使用强大的pivot_table函数。

2. pivot_table

首先,再现上面的操作:

Pandas中提供了各种选项,下面介绍常用参数:

① aggfunc:对组内进行聚合统计,可传入各类函数,默认为’mean’
② margins:汇总边际状态
③ 行、列、值都可以为多级

python dataframe 生成row number_数据分析_03

3. crosstab(交叉表)

交叉表是一种特殊的透视表,典型的用途如分组统计,如现在想要统计关于街道和性别分组的频数:

交叉表的功能也很强大(但目前还不支持多级分组),下面说明一些重要参数:

① values和aggfunc:分组对某些数据进行聚合操作,这两个参数必须成对出现。
② 除了边际参数margins外,还引入了normalize参数,可选’all’,‘index’,‘columns’参数值。

1. melt

melt函数可以认为是pivot函数的逆操作,将unstacked状态的数据,压缩成stacked,使“宽”的DataFrame变“窄”。

2. 压缩与展开

(1)stack:这是最基础的变形函数,总共只有两个参数:level和dropna。

stack函数可以看做将横向的索引放到纵向,因此功能类似与melt,参数level可指定变化的列索引是哪一层(或哪几层,需要列表。

(2) unstack:stack的逆函数,功能上类似于pivot_table

1. Dummy Variable(哑变量)

这里主要介绍get_dummies函数,其功能主要是进行one-hot编码:

现在希望将上面的表格前两列转化为哑变量,并加入第三列Weight数值:

2. factorize方法

该方法主要用于自然数编码,并且缺失值会被记做-1,其中sort参数表示是否排序后赋值。

1. 问题

【问题一】 上面提到了许多变形函数,如melt/crosstab/pivot/pivot_table/stack/unstack函数,请总结它们各自的使用特点。
【问题二】 变形函数和多级索引是什么关系?哪些变形函数会使得索引维数变化?具体如何变化?
【问题三】 请举出一个除了上文提过的关于哑变量方法的例子。
【问题四】 使用完stack后立即使用unstack一定能保证变化结果与原始表完全一致吗?
【问题五】 透视表中涉及了三个函数,请分别使用它们完成相同的目标(任务自定)并比较哪个速度最快。
【问题六】 既然melt起到了stack的功能,为什么再设计stack函数?

2. 练习

【练习一】 继续使用上一章的药物数据集:

python dataframe 生成row number_数据分析_04

(a) 现在请你将数据表转化成如下形态,每行需要显示每种药物在每个地区的10年至17年的变化情况,且前三列需要排序:

python dataframe 生成row number_数据分析_05

(b) 现在请将(a)中的结果恢复到原数据表,并通过equal函数检验初始表与新的结果是否一致(返回True)

【练习二】 现有一份关于某地区地震情况的数据集,请解决如下问题:

python dataframe 生成row number_Math_06

(a) 现在请你将数据表转化成如下形态,将方向列展开,并将距离、深度和烈度三个属性压缩:

python dataframe 生成row number_数据分析_07

(b) 现在请将(a)中的结果恢复到原数据表,并通过equal函数检验初始表与新的结果是否一致(返回True)

参考:https://github.com/datawhalechina/joyful-pandas

关于Datawhale

Datawhale是一个专注于数据科学与AI领域的开源组织,汇集了众多领域院校和知名企业的优秀学习者,聚合了一群有开源精神和探索精神的团队成员。Datawhale以“for the learner,和学习者一起成长”为愿景,鼓励真实地展现自我、开放包容、互信互助、敢于试错和勇于担当。同时Datawhale 用开源的理念去探索开源内容、开源学习和开源方案,赋能人才培养,助力人才成长,建立起人与人,人与知识,人与企业和人与未来的联结。

小讯
上一篇 2025-04-16 19:44
下一篇 2025-04-30 10:25

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/183530.html