专栏首页算法channel深入Python数据分析:数据由长格式变为宽格式

深入Python数据分析:数据由长格式变为宽格式

pivot

pandas使用版本0.22

melt()的逆操作在Pandas中对应为 pivot(),它也是一个设计上的顶层函数,工程位置如下:

Pandas

|

pivot()

它能变形长格式表为宽格式。

pivot英文解释为:axis consisting of a short shaft that supports something that turns 包含短柄的轴,支持物体转动。怎么理解?

图1

图2

图1到图2,就是Pandas中的pivot操作。

函数原型

主要参数:

  1. index 指明哪个列变为新DataFrame的index,注意是哪个,而不是哪些;
  2. columns 指明哪个列变为columns;
  3. values 指明哪些列变为新DataFrame的数据域,如果不指明,则默认除了被指明index和columns的其他列。

上面图1到图2的变换如下,并未指明values参数,其他列全部按照层级罗列。明显地,列变宽了,变为宽格式了。

如果只想获取某一个系列,比如baz系列,执行如下操作:

图2变化为如下:

异常

pivot操作在实际应用中,可能会出现异常,原因是被选为index和columns的交叉点值应该不是唯一值。

如上,[one,A] 取值为1或2,不唯一。因此,调用如下操作,会报异常。

异常如下,

总结

以上就是pivot使用细节,注意到pivot函数是没有聚合功能的。pandas中pivot_table()提供了聚合函数,实现聚合功能。

虽然只是一个简单的函数,但是却能够快速地对数据进行强大的分析。要想用透,需要多思考,尽量应用到实际场景中。

本文分享自微信公众号 - Python与机器学习算法频道(alg-channel),作者:flody

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-03-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python数据透视功能之 pivot_table()介绍

    pivot()函数没有数据聚合功能,要想实现此功能,需要调用Pandas包中的第三个顶层函数:pivot_table(),在pandas中的工程位置如下所示:

    double
  • 机器学习决策树:提炼出分类器算法

    ? 前面三天推送了决策树的基本原理和选择最佳分裂特征的几种公式,用到决策树一般都会出现过拟合问题,因此需要对决策树进行剪枝,阐述了常用的几种剪枝的方法(这些方...

    double
  • Leetcode|Find K Closest Elements

    01 — 题目 Given a sorted array, two integers k and x, find the k closest elements ...

    double
  • 快速排序算法

    快速排序算法本质上是通过把一个数组划分为两个子数组,然后递归的调用自身为每一个子数组进行快速排序来实现的。

    Vincent-yuan
  • 11项关键可视化促使SD-WAN迈向成功

    SD-WAN部署正在迅速成为全球网络运营(NetOps)团队的主要关注点,并且正在改变网络的面貌。事实上,Gartner估计,到2021年,将近三分之二的企业将...

    SDNLAB
  • 使用 .NET 进行游戏开发

    微软是一家综合性的网络公司,相信这点来说不用过多的赘述,没有人不知道微软这个公司,这些年因为游戏市场的回报,微软收购了很多的游戏公司还有独立工作室,MC我的世界...

    张善友
  • JD的猪脸识别和人脸识别有什么不一样?

    前段时间,JD搞了个猪脸识别的比赛,大家都看得沸沸扬扬,但是这个其实是一个很不错的AI+畜牧业的应用,比如在养牛行业。大家知道吗?牛其实不愿意看到人类的,他们会...

    机器人网
  • 挖矿病毒DDG的分析与清除

    网上查了下,发现这是一款在Linux/Windows双平台的挖矿病毒木马,该木马是通过Redis漏洞传播的挖矿木马DDG的变种,使用Go语言1.10编译使用了大...

    Java架构师历程
  • 初试 Prometheus + Grafana 监控系统搭建并监控 Mysql

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.n...

    哎_小羊
  • Java初学人员的注意事项

    Java中J2SE J2EE J2ME的区别 多数编程语言都有预选编译好的类库以支持各种特定的功能,在Java中,类库以包(package)的形式提...

    用户1289394

扫码关注云+社区

领取腾讯云代金券