数据分析之Pandas变形操作总结

本文详细介绍了Pandas中的变形操作,包括透视表的pivot、pivot_table和crosstab函数,以及其他变形方法如melt、stack和unstack。文中讨论了各个函数的使用特点、参数及其与多级索引的关系,并提供了实际操作示例和练习,帮助读者掌握数据变形技巧。
摘要由CSDN通过智能技术生成

↑↑↑关注后"星标"Datawhale

每日干货 & 每月组队学习,不错过

 Datawhale干货 

作者:耿远昊,Datawhale成员,华东师范大学

pandas 是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。

Pandas做分析数据,可以分为索引、分组、变形及合并四种操作。前边已经介绍过索引操作分组操作,现在接着对Pandas中的变形操作进行介绍,涉及知识点提纲如下图:

     本文目录

              1. 透视表

                  1.1. pivot

                  1.2. pivot_table

                  1.3. crosstab(交叉表)

    •  2. 其他变形方法

         2.1. melt函数

         2.2. 压缩与展开

               3. 哑变量与因子化

    •    3.1. Dummy Variable(哑变量)

         3.2. factorize方法

在详细讲解每个模块之前,首先读入数据:

import numpy as np
import pandas as pd
df = pd.read_csv('joyful-pandas-master/data/table.csv')
df.head()

透视表

1. pivot

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

df.pivot(index='ID',columns='Gender',values='Height').head()  # 设行列名,变成一个新的DataFrame

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

# df.pivot(index='School',columns='Gender',values='Height').head()
# ValueError: Index contains duplicate entries, cannot reshape

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

2. pivot_table

pd.pivot_table(df,index='ID',columns='Gender',values='Height').head()

但是在速度上,由于功能更多,自然是比不上原来的pivot函数的。

%timeit df.pivot(index='ID',columns='Gender',values='Height')
%timeit pd.pivot_table(df,index='ID',columns='Gender',values='Height')

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

① aggfunc:对组内进行聚合统计,可传入各类函数,默认为'mean'
pd.pivot_table(df,index='School',columns='Gender',values='Height',aggfunc=['mean','sum']).head()

② margins:汇总边际状态

pd.pivot_table(df,index='School',columns='Gender',values='Height',aggfunc=['mean',
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值