4.pandas的进阶查询
简单的查询其实根本不能满足实际开发的需求
需求可能是让你查一下2018年的销售额啊,2019年温度超过30℃的天数啊等等的
这些需求都是有异曲同工的,就是带条件的查询
这里我们先自己设计一个表格,并将其读取出来
import pandas as pd
df = pd.read_excel('test1.xlsx')
print(df)
data wendu_min wendu_max weather fengji
0 2020-01-01 1℃ 15℃ 晴 1
1 2020-01-02 1℃ 16℃ 多云 2
2 2020-01-03 1℃ 17℃ 小雨 4
3 2020-01-04 4℃ 18℃ 阴 2
4 2020-01-05 1℃ 19℃ 大雨 1
5 2020-01-06 3℃ 20℃ 小雨 3
6 2020-01-07 1℃ 21℃ 晴 5
7 2020-01-08 1℃ 22℃ 多云 2
8 2020-01-09 1℃ 23℃ 阴 1
9 2020-01-10 0℃ 24℃ 小雨 3
10 2020-01-11 2℃ 25℃ 多云 4
为了查询方便,所以我将日期当做查询的索引
df.set_index('data', inplace=True)
这个inplace是指修改可以及时看到
wendu_min wendu_max weather fengji
data
2020-01-01 1℃ 15℃ 晴 1
2020-01-02 1℃ 16℃ 多云 2
2020-01-03 1℃ 17℃ 小雨 4
2020-01-04 4℃ 18℃ 阴 2
2020-01-05 1℃ 19℃ 大雨 1
2020-01-06 3℃ 20℃ 小雨 3
2020-01-07 1℃ 21℃ 晴 5
2020-01-08 1℃ 22℃ 多云 2
2020-01-09 1℃ 23℃ 阴 1
2020-01-10 0℃ 24℃ 小雨 3
2020-01-11 2℃ 25℃ 多云 4
像这种温度带着的℃,不便于数据的分析,所以我们在刚开始的时候,可以将其去掉
df['wendu_min'] = df['wendu_min'].str.replace('℃', '').astype('int32')
df['wendu_max'] = df['wendu_max'].str.replace('℃', '').astype('int32')
wendu_min wendu_max weather fengji
data
2020-01-01 1 15 晴 1
2020-01-02 1 16 多云 2
2020-01-03 1 17 小雨 4
2020-01-04 4 18 阴 2
2020-01-05 1 19 大雨 1
2020-01-06 3 20 小雨 3
2020-01-07 1 21 晴 5
2020-01-08 1 22 多云 2
2020-01-09 1 23 阴 1
2020-01-10 0 24 小雨 3
2020-01-11 2 25 多云 4
数据都处理完毕,现在就开始进行查询
查询单个数据
我想查一月9号的最高温度
df.loc['2020-01-09', 'wendu_max']
23
先传行索引,再传列索引
查询多个数据
我想查一月6号到一月10号之间的所有数据
df.loc['2020-01-06':'2020-01-10', :]
wendu_min wendu_max weather fengji
data
2020-01-06 3 20 小雨 3
2020-01-07 1 21 晴 5
2020-01-08 1 22 多云 2
2020-01-09 1 23 阴 1
2020-01-10 0 24 小雨 3
:代表着所有的数据
使用条件查询
我想得到最低温度大于1℃的数据
df.loc[df['wendu_min'] > 1, :]
wendu_min wendu_max weather fengji
data
2020-01-04 4 18 阴 2
2020-01-06 3 20 小雨 3
2020-01-11 2 25 多云 4
我想要最低温度大于1℃,最高温度小于25℃的天气
df.loc[(df['wendu_min'] > 1) & (df['wendu_max'] < 25), :]
wendu_min wendu_max weather fengji
data
2020-01-04 4 18 阴 2
2020-01-06 3 20 小雨 3
多个条件要用括号括起来,然后用&连接
使用函数查询
使用lambda表达式
如果lambda不太熟练就跳过这里
df.loc[lambda df: (df['wendu_min'] > 1) & (df['wendu_max'] < 25), :]
wendu_min wendu_max weather fengji
data
2020-01-04 4 18 阴 2
2020-01-06 3 20 小雨 3
自己编写的函数查询
我认为最低温度大于1℃,最高温度小于25℃的就是好天气,所以先写一个函数
def goodWeather(df):
return (df['wendu_min'] > 1) & (df['wendu_max'] < 25)
然后再使用这个函数进行数据查询
df.loc[goodWeather, :]
wendu_min wendu_max weather fengji
data
2020-01-04 4 18 阴 2
2020-01-06 3 20 小雨 3
注意这里放的是函数名,而不是函数名()
4.pandas的进阶查询的更多相关文章
- pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)
pandas DataFrame的增删查改总结系列文章: pandas DaFrame的创建方法 pandas DataFrame的查询方法 pandas DataFrame行或列的删除方法 pand ...
- Django orm进阶查询(聚合、分组、F查询、Q查询)、常见字段、查询优化及事务操作
Django orm进阶查询(聚合.分组.F查询.Q查询).常见字段.查询优化及事务操作 聚合查询 记住用到关键字aggregate然后还有几个常用的聚合函数就好了 from django.db.mo ...
- 【PY从0到1】 一文掌握Pandas量化进阶
# 一文掌握Pandas量化进阶 # 这节课学习Pandas更深的内容. # 导入库: import numpy as np import pandas as pd # 制作DataFrame np. ...
- Django笔记&教程 5-2 进阶查询——Queryset
Django 自学笔记兼学习教程第5章第2节--进阶查询--Queryset 点击查看教程总目录 Queryset相关内容其实蛮多的,本文只介绍一些常用的,详细的推荐查询官方文档:queryset-a ...
- django进阶-查询(适合GET4以上人群阅读)
前言: 下篇博客写关于bootstrap... 一.如何在脚本测试django from django.db import models class Blog(models.Model): name ...
- MySQL 【进阶查询】
数据类型介绍 整型 tinyint, # 占1字节,有符号:-128~127,无符号位:0~255 smallint, # 占2字节,有符号:-32768~32767,无符号位:0~65535 med ...
- 3.pandas的简单查询
知道了基本的pandas的数据结构,就可以进行查询相应的数据了 DataFrame可以看成是一个个的Series组成的一个二维结构,既然如此,就会有从DataFrame里查询Series的方法 从Da ...
- python的Web框架,Django模型系统二,模型属性,及数据库进阶查询
原始数据接上篇文章来操作.可能需要查看后才能懂.点击这里查看 1.常用的模型字段类型 官方文档:https://docs.djangoproject.com/en/2.1/ref/models/fie ...
- mysql 进阶查询(学习笔记)
学习笔记,来源:实验楼 ,链接: https://www.shiyanlou.com/courses/9 一.日期计算: 1.要想确定每个宠物有多大,可以使用函数TIMESTAMPDIFF()计算 ...
随机推荐
- 一文告诉你Linux如何配置KVM虚拟化--安装篇
KVM全称"Kernel-based Virtual Machine",即基于内核的虚拟机,在linux内启用kvm需要硬件,内核和软件(qemu)支持,这篇文章教你如何配置并安装 ...
- Win8.1安装配置64位Oracle Database 11g的详细图文步骤记录
在开始Oracle数据安装之前建议:1.关闭本机的病毒防火墙.2.断开互联网. 这样可以避免解压缩丢失文件和安装失败. Step1 Oracle官网下载好Windows系统64位的安装包,下载速度慢的 ...
- python利用列表文件遍历
关键词:文件遍历/列表 思路:先制作目标文件列表(txt/csv...均可),再逐行读取列表文件 1. 制作列表 linux 终端输入:# find ./abc -type f > list.t ...
- 如何使用ABP进行软件开发之基础概览
ABP框架简述 1)简介 在.NET众多的技术框架中,ABP框架(本系列中指aspnetboilerplate项目)以其独特的魅力吸引了一群优秀开发者广泛的使用. 在该框架的赋能之下,开发者可根据需求 ...
- pandas | 使用pandas进行数据处理——Series篇
本文始发于个人公众号:TechFlow,原创不易,求个关注 上周我们关于Python中科学计算库Numpy的介绍就结束了,今天我们开始介绍一个新的常用的计算工具库,它就是大名鼎鼎的Pandas. Pa ...
- django admin 添加用户出现外键约束错误
今天在做mxonline项目时,注册了用户表进admin后,想在后台添加一个用户试试,结果出现了错误,经过一番搜索发现以下两个解决方法,不过我只用了一种 报错信息: IntegrityError: ( ...
- [CEOI1999]Parity Game 题解
P5937 [CEOI1999]Parity Game 洛谷P5937 P5937 [CEOI1999]Parity Game 前言: 个人感觉这道题初看想不到并查集啊!(说实话我题都没读懂,第二遍才 ...
- python运行时报错can't find '__main__' module in 'xxx' 的解决办法
刚开始学习python,想要使用pycharm来编辑和运行程序,所以就安装了下pycharm ,写了个简单的代码决定运行下,结果出现如下错误: 度娘找了一番,解决了问题,发现错误主要因为在这里 没有运 ...
- 阿里云Linux CentOS8.1 64位服务器安装LNMP(Linux+Nginx+MySQL+PHP) 并发调试之调试工具ab(apache bench)
ab 测试工具,全称是 apache bench ,是 Apache 提供的一款测试工具,具有简单易上手的特点,在测试 Web 服务时非常实用. ab 可以在 Windows 系统中使用,也可以在 L ...
- Spring IoC @Autowired 注解详解
前言 本系列全部基于 Spring 5.2.2.BUILD-SNAPSHOT 版本.因为 Spring 整个体系太过于庞大,所以只会进行关键部分的源码解析. 我们平时使用 Spring 时,想要 依赖 ...