Pandas数据分析-Task5

Pandas数据分析-Task5

记录DataWhale的Pandas数据分析的学习过程,使用的教材为 joyful-pandas
Task4是pandas的变形函数,分为三个部分,第一部分介绍长宽表变形,包括pivot(),pivot_table(),melt(),wide_to_long()函数;第二部分介绍了索引的变形函数,包括行索引变列索引的unstack()和列索引变行索引的stack()函数;第三部分介绍另外一些常用的函数,包括将类型变量变为哑铃编码的pd.get_dummies(),以及功能和pivot_table()函数类似的pd.crosstable()函数。本篇文章中所有的代码示例中用到的原始文件都可以在 此链接中下载。

长宽表变形

长表变宽表:pivot()方法

pivot()功能是将长表变为宽表,有index, columns, values 这三个参数,新生成宽表的
列索引是columns对应原来长表列的unique值,而新生成的宽表的行索引是index 对应原来长表列的unique 值,而values 对应要展示的数值列
。使用pivot()方法的前提是原长表中的index 和columns 对应两个列的行组合必须唯一

#长表
df = pd.DataFrame({
   'Class':[1,1,2,2],'Name':['San Zhang','San Zhang','Si Li','Si Li'],'Subject':['Chinese','Math','Chinese','Math'],'Grade':[80,75,90,85]})
>   Class       Name  Subject  Grade
0      1  San Zhang  Chinese     80
1      1  San Zhang     Math     75
2      2      Si Li  Chinese     90
3      2      Si Li     Math     85

#用pivot()方法变宽表
df_pr=df.pivot(index='Name',columns='Subject',values='Grade')
>Subject    Chinese  Math
Name                    
San Zhang       80    75
Si Li           90    85

在这里插入图片描述

长表变宽表+聚合函数:pivot_table()方法

上面说到,使用pivot()方法的前提是**原长表中的index 和columns 对应两个列的行组合必须唯一,当原表中组合存在重复值时,可以将重复的结果经过聚合函数聚合为1个标量值。能完成这样操作的方法为pivot_table()方法。pivot_table()方法比pivot()方法多了两个参数:aggfunc和margins,aggfunc就是要使用的聚合函数,而设置margins=True时实现边际汇总的功能,即变换后每一行没一列的结果都进行聚合。例如:张三和李四都参加了两次语文考试和数学考试,最后的成绩是两次考试分数的平均值,求最后成绩并转换为宽表。

#原长表
df = pd.DataFrame(
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值