在使用Pandas之前,大多数数据分析师已经掌握了Excel和SQL,并且在刚上手Pandas时会经常习惯性想到“老办法”。"如果谁能把常用的数据查询语法做个对比就好了 ",我也曾不止一次地想享受前人的成果,无奈发现网上的文章侧重不同且深浅不一,还涉及到一些Pandas新老版本的问题,于是决定自己动手。我是岂安科技业务风险分析师大毛,以下,GO~

一、举例的数据

假设我有个六列的dataframe,一列是销售员,一列是所属团队,其它四列分别是四个季度的销售额。

新增列-基于原有列的全年销售额

首先df['Total ']确保了你在该df内新增了一个column,然后累加便可。

df['Total'] = df['Q1']+df['Q2']+df['Q3']+df['Q4']

你可能想使用诸如sum()的函数进行这步,很可惜,sum()方法只能对列进行求和,幸好它可以帮我们求出某季度的总销售额。

df['Q1'].sum(),你就能得到一个Q1的总销售额,除此之外,其他的聚合函数,max,min,mean都是可行的。

分组统计 - 团队竞赛

那么按团队进行统计呢?

在mysql里是group by,Pandas里也不例外,你只需要df.groupby('Team').sum()就能看到期望的答案了。

排序 - 谁是销售冠军

如果你关心谁的全年销售额最多,那么就要求助于sort_values方法了,在excel内是右键筛选,SQL内是一个orderby。

默认是顺序排列的,所以要人为设定为False,如果你只想看第一名,只需要在该语句末尾添加.head(1)

切片-只给我看我关心的行

接下来就是涉及一些条件值的问题,例如我只关心Team为A的数据,在Excel里是筛选框操作,在SQL里写个where就能搞定,在Pandas里需要做切片。

查看Pandas文档时,你可能已经见过各种切片的函数了,有loc,iloc,ix,iy,这里不会像教科书一样所有都讲一通让读者搞混。

这种根据列值选取行数据的查询操作,推荐使用loc方法。

df.loc[df['Team']== 'A',['Salesman', 'Team','Year']],这里用SQL语法理解更方便,loc内部逗号前面可以理解为where,逗号后可以理解为select的字段。

如果想全选出,那么只需将逗号连带后面的东西删除作为缺省,即可达到select *的效果。

切片 - 多条件筛选

在Pandas中多条件切片的写法会有些繁琐,df.loc[ (df['Team']== 'A' ) & (df['Total'] > 15000 ) ],添加括号与条件符。

这里有一个有意思的小应用,如果你想给符合某些条件的员工打上优秀的标签,你就可以结合上述新增列和切片两点,进行条件赋值操作。

df.loc[ (df['Team']== 'A' ) & (df['Total'] > 15000 ) , 'Tag'] = 'Good'

删除列 - 和查询无关,但是很有用

当然这里只是个举例,这时候我想删除Tag列,可以del df['Tag'],又回到了之前。

二、连接

接下来要讲join了,现在有每小时销售员的职位对应表pos,分为Junior和Senior,要将他们按对应关系查到df中。

这里需要认识一下新朋友,merge方法,将两张表作为前两个输入,再定义连接方式和对应键。对应到Excel中是Vlookup,SQL中就是join。在pandas里的连接十分简单。

df = pd.merge(df, pos, how='inner', on='Salesman')

注意,这个时候其实我们是得到了新的df,如果不想覆盖掉原有的df,你可以在等号左边对结果重新命名。

这时候有了两组标签列(对应数值列),就可以进行多重groupby了。

当然这样的结果并不能公平地反应出哪一组更好,因为每组的组员人数不同,可能有平均数的参与会显得更合理,并且我们只想依据全年综合来评价。

这里的数据是捏造的,不过也一目了然了。

三、合并操作

最后以最简单的一个合并操作收尾。

如果我又有一批数据df2,需要将两部分数据合并。只需要使用concat方法,然后传一个列表作为参数即可。不过前提是必须要保证他们具有相同类型的列,即使他们结构可能不同(df2的Team列在末尾,也不会影响concat结果,因为pandas具有自动对齐的功能)

pd.concat([df,df2])

尾声

以上就是一些基础的Pandas数据查询操作了。作为Pandas初学者,如果能善用类比迁移的方法进行学习并进行总结是大有裨益的。如果看完本文还没有能了解到你关心的查询方法,可以留言联系,或许还可以有续集。

python和pandas有什么关系_python pandas效率到底如何?相关推荐

  1. python中level函数的用法_Python Pandas MultiIndex.sortlevel()用法及代码示例

    Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统. Pandas是其中的一种,使导入和分析数据更加容易. Pandas MultiIndex.so ...

  2. python中columns是什么意思_Python Pandas DataFrame.columns用法及代码示例

    Pandas DataFrame是带有标签轴(行和列)的二维大小可变的,可能是异构的表格数据结构.算术运算在行和列标签上对齐.可以将其视为Series对象的dict-like容器.这是 Pandas ...

  3. python能实现excel什么功能_Python pandas对excel的操作实现示例

    最近经常看到各平台里都有Python的广告,都是对excel的操作,这里明哥收集整理了一下pandas对excel的操作方法和使用过程.本篇介绍 pandas 的 DataFrame 对列 (Colu ...

  4. python pandas读取txt文件_python Pandas 读取txt表格的实例

    运行环境 Python 2.7 操作实例 1.原始文本格式:空格分隔的txt,例如 2016-03-22 00:06:24.4463094 中文测试字符 2016-03-22 00:06:32.456 ...

  5. python显示图像某列的颜色值_Python Pandas Matplotlib图由单列中定义的类型值着色

    我有以下格式的数据: import pandas as ps table={'time':[1,2,3,4,5,1,2,3,4,5,1,2,3,4,5],\ 'data':[1,1,2,2,2,1,2 ...

  6. python电商用户购买力分析_Python + pandas + 不同客户购买力图形显示

    数据源:Kaggle网站上一个"blackFriday.csv"文件(Kaggle网站是一个流行的数据科学竞赛平台),下载下来的数据字段如下: 2020-10-19 13:13:2 ...

  7. python pandas series加速原理_python pandas中对Series数据进行轴向连接的实例

    有时候我们想要的数据合并结果是数据的轴向连接,在pandas中这可以通过concat来实现.操作的对象通常是Series. Ipython中的交互代码如下: In [17]: from pandas ...

  8. python pandas合并单元格_python pandas拆分单元格

    python pandas拆分单元格​mp.weixin.qq.com 拆分单元格是excel中经常遇到的内容之一.那么在pandas中如何实现呢? 例如有如下数据: >>> imp ...

  9. python怎么读取dat类型文件_python.pandas如何读写含有中文的文件-dat文件怎么打开...

    源代码(以python2.7版本为例):#!/usr/bin/env python #coding:utf-8 import pandas as pd data=pd.read_csv("F ...

最新文章

  1. Angular应用提高打包速度
  2. 阿里云服务器(Ubuntu16.04 64位)远程连接
  3. Python os.makedirs详细介绍
  4. NumpyPandas的区别和联系
  5. linux环境下项目启动却访问不,在Linux环境下部署项目遇到的一些问题
  6. Django项目部署到Linux后,上传文件的时候,mkdirs创建目录OSError - Errno 13 Permission denied
  7. 4. linux调用文件计算阶乘前5项和_嵌入式Linux系统编程——文件读写访问、属性、描述符、API
  8. Spark团队开源新项目MLflow发布0.2版本,内置TensorFlow集成
  9. 数控镗铣床行业调研报告 - 市场现状分析与发展前景预测
  10. 利用端口映射解决:拥有公网IP有限,内网需要访问因特网
  11. 用Python实现一个简单的批量无水印快手抖音批量下载器
  12. 启发式搜索A * 算法
  13. GPRS PDP APN
  14. QQ空间导出助手插件
  15. 2021/11/16 Andriod Studio安装经验总结
  16. 虚幻gameframe_Unreal Engine 4 Gameplay框架介绍
  17. python编程-----利用爬虫获取自如房间信息(二)
  18. gdb调试c语言在poll函数卡住,poll()上的C编程分段错误
  19. 日元对人民币汇率的大数据分析与预测
  20. python快速入门【三】-----For 循环、While 循环

热门文章

  1. react离开页面,自定义弹框拦截,路由拦截
  2. 过程、性能基线、性能模型与目标之间的关系
  3. do not back up文件夹属性
  4. 烂泥:使用snmpwalk采集设备的OID信息
  5. windows用户模式与内核模式
  6. 关于二级域名Cookie的问题及解决方法
  7. macOS U盘烧录Linux iso镜像
  8. kafka_2.10-0.8.1.1.tgz的1或3节点集群的下载、安装和配置(图文详细教程)绝对干货...
  9. SWOOLE的热更新实现
  10. Mysql 基础语法