pandas(13 Caveats Gotchas和SQL比较)

前面内容: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 pdif pd.Series([False, True, False]):print('I am True')

运行结果: 

例2:any() 

import pandas as pdif 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 pds = pd.Series(range(5))
print(s==4)

运行结果:

1.3 isin操作

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

例6:isin() 

import pandas as pds = 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 npdf = 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 npdf = 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 npdf = 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 pdurl = '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.rhkb.cn/news/19118.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FPGA的星辰大海

编者按 时下风头正盛的DeepSeek,正值喜好宏大叙事的米国大统领二次上岗就业,OpenAI、软银、甲骨文等宣布投资高达5000亿美元“星际之门”之际,对比尤为强烈。 某种程度上,,是低成本创新理念的直接落地。 包括来自开源社区的诸多赞誉是,并非体现技术有多“超越”,而是…

AI大模型的文本流如何持续吐到前端,实时通信的技术 SSE(Server-Sent Events) 认知

写在前面 没接触过 SSE(Server-Sent Events),AI大模型出来之后,一直以为文本流是用 WebSocket 做的偶然看到返回到报文格式是 text/event-stream,所以简单认知,整理笔记博文内容涉及 SSE 认知,以及对应的 D…

大学信息安全技术 期末考试复习题

一、单选题(一) 1、在以下人为的恶意攻击行为中,属于主动攻击的是( )A A.数据篡改及破坏 B.数据窃听 C.数据流分析 D.非法访问 2、数据完整性指的是( &#x…

CES 2025 上的创新方案——无电池智能纸尿裤-AP4470

这款纸尿裤采用了可重复使用的组件,通过检测液体的存在来增强老年人和婴儿的护理,即使电极上滴了几滴液体也是如此。 其原理为尿液中的水分作为电解液,将尿布里安装的两种导电性材料作为正负极,充当电池,从而产生300m…

C++17中的LegacyContiguousIterator(连续迭代器)

文章目录 特点内存连续性与指针的兼容性更高的性能 适用场景与C接口交互高性能计算 支持连续迭代器的容器示例代码性能优势缓存局部性指针算术优化 注意事项总结 在C17标准里,LegacyContiguousIterator(连续迭代器)是一类特殊的迭代器。它不仅…

小白win10安装并配置yt-dlp

需要yt-dlp和ffmpeg 注意存放路径最好都是全英文 win10安装并配置yt-dlp 一、下载1.下载yt-dlp2. fffmpeg下载 二、配置环境三、cmd操作四、yt-dlp下视频操作 一、下载 1.下载yt-dlp yt-dlp地址 找到win的压缩包点下载,并解压 2. fffmpeg下载 ffmpeg官方下载 …

【线性代数】2矩阵

1.矩阵的运算 1.1.定义 矩阵行列式数表数行数和列数可以不相等行数和列数必须相等1.2.加法与数乘 矩阵的数乘:所有元素都乘这个数 矩阵的加法:对应位置处元素相加 🦊已知,求 1.3.乘法 矩阵乘法三步法 ①能不能乘:内定乘 ②乘完是何类型:外定型 ③中的元素是什么:左…

【Leetcode 952】按公因数计算最大组件大小

题干 给定一个由不同正整数的组成的非空数组 nums ,考虑下面的图: 有 nums.length 个节点,按从 nums[0] 到 nums[nums.length - 1] 标记;只有当 nums[i] 和 nums[j] 共用一个大于 1 的公因数时,nums[i] 和 nums[j]之…

DeepSeek-R1 大模型本地部署指南

文章目录 一、系统要求硬件要求软件环境 二、部署流程1. 环境准备2. 模型获取3. 推理代码配置4. 启动推理服务 三、优化方案1. 显存优化技术2. 性能加速方案 四、部署验证健康检查脚本预期输出特征 五、常见问题解决1. CUDA内存不足2. 分词器警告处理3. 多GPU部署 六、安全合规…

家里WiFi信号穿墙后信号太差怎么处理?

一、首先在调制解调器(俗称:猫)测试网速,网速达不到联系运营商; 二、网线影响不大,5类网线跑500M完全没问题; 三、可以在卧室增加辅助路由器(例如小米AX系列)90~200元区…

win11系统 Docker Desktop提示Docker Engine stopped解决全过程记录

DockerDesktop安装指南以及Windows下WSL2和 Hyper-V相关问题追查 【已解决】win10系统 Docker 提示Docker Engine stopped解决全过程记录 本篇文章主要记录Docker Desktop安装和使用时出现的问题及解决方法,以及后续使用夜神模拟器,关闭了Hyper-V时&am…

手动埋点的demo

上代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>埋点示例</title> </head><b…

数据结构——链表

目录 一、链表 1.1 链表的概念 二、单链表 2.1 单链表的概念 2.2单链表的操作 2.2.1 单链表的结点创建 2.2.2 单链表的头插 2.2.3 单链表遍历 2.2.4 单链表的头删 2.2.5 单链表的尾插 2.2.6 单链表的尾删 2.2.7 单链表按位置插入 2.2.8 单链表按位置删除 2.2.9 单链表按位置修…

LeetCode每日精进:142.环形链表II

题目链接&#xff1a;142.环形链表II 题目描述&#xff1a; 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环…

【办公类-90-02】】20250215大班周计划四类活动的写法(分散运动、户外游戏、个别化综合)

背景需求&#xff1a; 做了中班的四类活动安排表&#xff0c;我顺便给大班做一套 【办公类-90-01】】20250213中班周计划四类活动的写法&#xff08;分散运动、户外游戏、个别化&#xff08;美工室图书吧探索室&#xff09;&#xff09;-CSDN博客文章浏览阅读874次&#xff0…

网络工程师 (42)IP地址

一、定义与功能 IP地址是IP协议提供的一种统一的地址格式&#xff0c;它为互联网上的每一个网络和每一台主机分配一个逻辑地址&#xff0c;以此来屏蔽物理地址的差异。这种地址分配方式确保了用户在连网的计算机上操作时&#xff0c;能够高效且方便地从众多计算机中选出自己所需…

cap1:TensorRT介绍及CUDA环境安装

《TensorRT全流程部署指南》专栏文章目录&#xff1a; cap1&#xff1a;TensorRT介绍及CUDA环境安装cap2&#xff1a;1000分类的ResNet的TensorRT部署指南&#xff08;python版&#xff09;cap3&#xff1a;自定义数据集训练ResNet的TensorRT部署指南&#xff08;python版&…

保持角色一致性的绘本生成AI开源项目之Story-Adapter本地部署Windows篇

本文已首发&#xff1a;秋码记录 在人工智能领域&#xff0c;生成一致且连贯的故事绘本一直是一个具有挑战性的任务。Story-Adapter作为一个开源项目&#xff0c;旨在解决这一问题&#xff0c;为用户提供无需训练即可生成长篇故事视觉化的工具。本文将指导您如何在Windows系统…

[JVM篇]垃圾回收器

垃圾回收器 Serial Seral Old PartNew CMS(Concurrent Mark Sweep) Parallel Scavenge Parallel Old G1 ZGC

字符串(典型算法思想)—— OJ例题算法解析思路

目录 一、14. 最长公共前缀 - 力扣&#xff08;LeetCode&#xff09; 解法一&#xff1a;算法代码&#xff08;两两比较&#xff09; 1. 初始化公共前缀 2. 遍历字符串数组 3. 辅助函数 findCommon 4. 返回最终结果 总结 解法二&#xff1a;算法代码&#xff08;统一比较…