pandas速成笔记(3)-join/groupby/sort/行列转换

上篇继续 ,这回看下一些常用的操作:

一、join 联表查询

有数据库开发经验的同学,一定对sql中的join ... on 联表查询不陌生,pandas也有类似操作

假设test.xlsx的sheet1, sheet2中分别有下面的数据(相当于2张表)

 

现在要以ID做为作为Key,将二张表join起来,可以这样写:

输出:

是不是跟sql几乎一模一样?如果2个表格中的Key,名称不一样,比如第2个表格长这样,第1列不叫ID,而是stutent_id

也不影响,只要在读取时设置了索引即可,默认join时就是用index列做为key关联

 

二、groupby分组统计 

假设有一张表:

想按月汇总下Amount的总和,直接使用groupby("Month")

输出:

来个更复杂的,希望按Category看看,在本月当中该Category的Amount占"当月Amount总和"的占比,比如2021-09月,Amount总和为60,而9月之中,C类的Amount=30,即9月C类的Amount占9月总Amount的50%

  输出:

除了分组求和,当然还能求平均值,以及分组计算count

输出:

 

三、sort排序

还是这张表,如果希望按Amount降序排列,可以这样:

输出:

如果需要多个字段排序 ,比如:先按Month升序,再按Amount降序

输出:

  

四、行列转换

pandas有一个内置的transpose()方法,可以直接实现:

输出:

不过这个转换功能有点简单,如果要实现一些个性化的行列转换,比如希望达到下面的效果:

就得自己写代码了,参考下面:

  

参考:

1、官网 pandas.DataFrame.join 文档

2、官网 pandas.DataFrame.groupby 文档

posted @   菩提树下的杨过  阅读(451)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!
历史上的今天:
2010-03-19 再谈web开中几种经典的大文件上传组件
2009-03-19 Asp.Net MVC1.0正式版发布
2008-03-19 linq to sql的多条件动态查询(上)
点击右上角即可分享
微信分享提示