pandas(13 Caveats Gotchas和SQL比较)

news2025/3/12 19:05:10

前面内容:pandas(12 IO工具和稀松数据) 

目录

一、Caveats警告 & Gotchas预见

1.1 在Pandas中使用if/Truth语句 

1.2 位运算布尔

1.3 isin操作

1.4 重新索引reindex和 loc&iloc 使用注意事项

1.5 loc和iloc 

二、Python Pandas 与SQL的比较

2.1 数据集 

2.2 SELECT(查询)

2.3 WHERE(过滤)

2.4 GroupBy(分组)

2.5 前N行


 

一、Caveats警告 & Gotchas预见

1.1 在Pandas中使用if/Truth语句 

Pandas遵循numpy的约定,当您尝试将某个对象转换为 bool 时,会抛出错误。这在使用布尔运算的 if 或 when 以及 or 、 and 或 not 时会发生。不清楚应该得到什么结果。它应该是True,因为它不是零长度的吗?它应该是False,因为有False的值吗?不清楚,所以Pandas会引发 ValueError – 

 例1:

import pandas as pd

if pd.Series([False, True, False]):
   print('I am True')

运行结果: 

例2:any() 

import pandas as pd

if pd.Series([False, True, False]).any():
   print("I am any")

运行结果:

例3:bool()单个元素

import pandas as pd
print(pd.Series([True]).bool())

运行结果:

例4:bool()多元素

import pandas as pd
print(pd.Series([True,False]).bool())

运行结果:

1.2 位运算布尔

位运算布尔运算符如 == 和 ! 返回一个布尔序列,这通常是所需的。

例5: 

import pandas as pd

s = pd.Series(range(5))
print(s==4)

运行结果:

1.3 isin操作

此操作返回一个布尔系列,显示系列中的每个元素是否完全包含在传递的值序列中

例6:isin() 

import pandas as pd

s = pd.Series(list('abc'))
s = s.isin(['a', 'c', 'e'])
print(s)

运行结果:

  

1.4 重新索引reindex和 loc&iloc 使用注意事项

很多用户会发现使用 ix 索引能力 作为从 Pandas 对象中选择数据的简洁方式−

例7: loc()

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(6, 4), columns=['one', 'two', 'three',
'four'],index=list('abcdef'))

print(df)
print('-'*50)
print(df.loc[['b', 'c', 'e']])

运行结果:

例8: reindex()

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(6, 4), columns=['one', 'two', 'three', 'four'], index=list('abcdef'))

print(df)
print('-' * 50)
print(df.reindex(['b', 'c', 'e']))#只有一对[]如果和上面一样是两对,值则为空

运行结果:

例9:iloc()和reindex 

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(6, 4), columns=['one', 'two', 'three',
'four'],index=list('abcdef'))

print(df.iloc[[1, 2, 4]])
print('-'*50)
print(df.reindex([1, 2, 4]))

运行结果:

 

结论:使用标签时,loc和reindex等价,使用行列位置时,iloc有数值,reindex数值为空 

1.5 loc和iloc 

1. loc:基于标签进行索引

  • 语法df.loc[row_indexer, column_indexer]

    • row_indexer:行标签(可以是单个标签、标签列表、布尔数组等)。
    • column_indexer:列标签(可以是单个标签、标签列表、布尔数组等)。
  • 特点

    • loc 通过 行标签列标签 来进行定位,常用于通过标签名来选取数据。
    • 选择的范围是 闭区间(包括结束标签)。

2. iloc:基于位置进行索引

  • 语法df.iloc[row_indexer, column_indexer]

    • row_indexer:行的位置索引(可以是整数、整数列表、切片等)。
    • column_indexer:列的位置索引(可以是整数、整数列表、切片等)。
  • 特点

    • iloc 通过 行的位置索引列的位置索引 来进行定位,常用于通过整数位置进行选取数据。
    • 选择的范围是 半开区间(不包括结束位置)。

二、Python Pandas 与SQL的比较

由于许多潜在的Pandas用户对SQL有一定的了解,所以本页面旨在提供使用pandas执行各种SQL操作的一些示例。

2.1 数据集 

例1: 

import pandas as pd

url = 'https://raw.githubusercontent.com/mwaskom/seaborn-data/master/tips.csv'
tips = pd.read_csv(url)
print(tips.head())

运行结果:

 

2.2 SELECT(查询)

在SQL中,使用逗号分隔的列列表进行选择(或使用*选择所有列)-

例2: 

SQL: SELECT

SELECT total_bill, tip, smoker, time
FROM tips
LIMIT 5;

pandas: 

print(tips[['total_bill', 'tip', 'smoker', 'time']].head(5))

运行结果: 

2.3 WHERE(过滤)

例3: 

SQL: WHERE

SELECT * FROM tips WHERE time = 'Dinner' LIMIT 5;

pandas: 布尔值

tips[tips['time'] == 'Dinner'].head(5)

运行结果:

 

2.4 GroupBy(分组)

例4: 

SQL: 

SELECT sex, count(*)
FROM tips
GROUP BY sex;

pandas:

print(tips.groupby('sex').size())

运行结果:

 

2.5 前N行

例5: 

SQL:LIMIT

SELECT * FROM tips
LIMIT 5 ;

pandas:

print(tips.head(5))

运行结果: 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2299764.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android的Activity生命周期知识点总结,详情

一. Activity生命周期 1.1 返回栈知识点 二. Activity状态 2.1 启动状态 2.2 运行状态 2.3 暂停状态 2.4 停止状态 2.5 销毁状态 三. Activity生存期 3.1 回调方法 3.2 生存期 四. 体验Activity的生命周期 五. Activity被回收办法 引言: 掌握Acti…

基于Python的Flask微博话题舆情分析可视化系统

2024数据 ✅️标价源码 远程部署加 20 ✅️爬虫可用 有六月数据 ✅️修复bug不会突然打不开网页 系统稳定 系统的功能如下: 1.数据的爬取 2.用户的登录注册 3.热词统计,舆情统计 4.文章统计分析 5.发布地址统计 6.评论统计 7.情感分类统计 编程语言:py…

【油漆面积——线段树,扫描线,不用pushdown的特例,pushup兼有cal的性质】

题目 分析 不用pushdown是因为: 对于modify,操作是互逆过程,因此不会存在向下结算的pushdown过程 对于query,操作始终针对最上层的tr[1],也不需要pushdown 对于pushdown,一则是怕不结算就标记,会…

深度学习(1)-简单神经网络示例

我们来看一个神经网络的具体实例:使用Python的Keras库来学习手写数字分类。在这个例子中,我们要解决的问题是,将手写数字的灰度图像(28像素28像素)划分到10个类别中(从0到9)​。我们将使用MNIST…

硬件学习笔记--42 电磁兼容试验-6 传导差模电流干扰试验介绍

目录 电磁兼容试验-传导差模电流试验 1.试验目的 2.试验方法 3.判定依据及意义 电磁兼容试验-传导差模电流干扰试验 驻留时间是在规定频率下影响量施加的持续时间。被试设备(EUT)在经受扫频频带的电磁影响量或电磁干扰的情况下,在每个步进…

Shader示例 6: 卡渲基础 - 描边 + 着色

0 、获取原神模型: 【游戏开发实战】下载原神模型,PMX转FBX,导入到Unity中,卡通渲染,绑定人形动画(附Demo工程)-CSDN博客 《原神》公测视频征集计划 一、描边pass:Outline 1. …

Cherno C++ P55 宏

这篇文章我们讲一下C当中的宏。其实接触过大型项目的朋友可能都被诡异的宏折磨过。 宏是在预处理当中,通过文本替换的方式来实现一些操作,这样可以不用反复的输入代码,帮助我们实现自动化。至于预处理的过程,其实就是文本编辑&am…

(20)从strlen到strtok:解码C语言字符函数的“生存指南1”

❤个人主页:折枝寄北的博客 ❤专栏位置:简单入手C语言专栏 目录 前言1. 求字符串长度函数1.1 strlen 2. 长度不受限制的字符串函数2.1 strcpy2.2 strcat2.3 strcmp 3. 长度受限制的字符串函数3.1 strncpy3.2 strncat3.3 strncmp 4. 字符串查找函数4.1 st…

Mongodb数据管理

Mongodb数据管理 1.登录数据库,查看默认的库 [rootdb51~]# mongo> show databases; admin 0.000GB config 0.000GB local 0.000GB> use admin switched to db admin > show tables system.version > admin库:admin 是 MongoDB 的管理…

从短片到长片:王琦携《Mountain》续作迈向新高度

在王琦(Qi Wang)的带领下,广受关注的短片《Mountain》迎来了成长篇续作《Rite of the Mountain》。这一全新长片不仅是她从短片迈向长篇叙事的重要一步,更是一次大胆的艺术挑战。作为制片人的她,将继续以敏锐的视觉风格和深刻的叙事洞察,拓展《Mountain》所触及的情感深度,并构…

DeepSeek应用——与PyCharm的配套使用

目录 一、配置方法 二、使用方法 三、注意事项 1、插件市场无continue插件 2、无结果返回,且在本地模型报错 记录自己学习应用DeepSeek的过程,使用的是自己电脑本地部署的私有化蒸馏模型...... (举一反三,这个不单单是可以用…

如何画产品功能图、结构图

功能图的类型 常见的功能图包括数据流图、用例图、活动图、状态图、类图、组件图、部署图等等,不同的应用场景和目标下,需要确定不同的功能图类型。 数据流图 用例图 状态图 类图 组件图 组件图是由软件系统、组件和组件之间的关系组成的图形&#xf…

标准输入输出流,面向对象,构造函数

标准输入输出流 为什么不直接用printf和scanf? 不能输入/输出C新增的内容 std C的一些标识符&#xff0c;都是定义在std这个名字空间下面cout 是什么&#xff1f; 1.是一个ostream对象 output stream:输出流使用 <<&#xff1a;输出流运算符 作用&#xff1a;将右边…

PowerBI 矩阵 列标题分组显示(两行列标题)

先看效果 数据表如下&#xff1a; 我们在powerbi里新建一个矩阵&#xff0c;然后如图加入字段&#xff1a; 我们就会得到这样的矩阵&#xff1a; 我们在“可视化”->“列”&#xff0c;上双击&#xff0c;输入空格&#xff0c;就能消除左上角的"类别"两字 同理修…

服务器部署DeepSeek,通过Ollama+open-webui部署

1. 安装ollama 1.1. linux 安装 Ollama是目前常用的AI模式部署的第三方工具&#xff0c;能一键部署deepSeek Ollama官方网址https://ollama.com/ 选择Download下载对应的服务版本 服务器选择Linux&#xff0c;下面是下载代码 curl -fsSL https://ollama.com/install.…

Ubuntu 连接 air pods

&#xff11;&#xff0e; sudo vim /etc/bluetooth/main.conf , 修改蓝牙模式为blder &#xff12;&#xff0e;sudo /etc/init.d/bluetooth restart, 重启蓝牙&#xff0c;即可连接成功

民用无人驾驶航空器操控员考试

1. 注册 民用无人驾驶航空器综合管理平台 (caac.gov.cn) 2. 选择 操控员资质 3. 安全操控理论培训 -> 在线视频培训 学习完后选择 【在线考试】 共 50道 单项 选择题&#xff0c;每选项3个&#xff0c;80分及格。 4. 查看 我的合格证 证书有效期2年

002 第一个python程序

编程语言 编程语言可以做的事情&#xff1a; 网站开发、软件 、游戏、APP、 小程序、 爬虫、 数据分析、脚本 第一个python程序 找到IDE图标pycharm 新建项目 选择项目路径 创建目录 新建python文件 输入代码 运行程序查看结果 print 介绍 print : 输出内容…

解锁机器学习核心算法 | 决策树:机器学习中高效分类的利器

引言 前面几篇文章我们学习了机器学习的核心算法线性回归和逻辑回归。这篇文章我们继续学习机器学习的经典算法——决策树&#xff08;Decision Tree&#xff09; 一、决策树算法简介 决策树算法是一种典型的分类方法&#xff0c;也是一种逼近离散函数值的方法。它的核心思想…

数据结构——顺序表与链表

目录 前言 一线性表 二顺序表 1实现 2相关面试题 2.1移除元素 2.2删除有序数组中的重复项 3.3合并两个有序数组 3问题 三链表 1链表的分类 1.1单向或者双向 1.2带头或者不带头 1.3循环或者非循环 2实现 2.1尾插与头插 2.2尾删与头删 2.3pos前插入节点与删除…