Pandas vs SQL全面对比

【Pandas+SQL完全指南】10种数据库无缝集成技巧 | 数据分析效率翻倍 在现代数据分析中,我们经常需要处理存储在数据库中的大量数据。Pandas 作为 Python 数据分析的核心库,提供了与各种数据库系统无缝集成的能力,使数据科学家和分析师能够轻松地在 Python 环境中分析数据库数据。本文将详细介绍如何结合 Pandas 和 SQL,建立高效的数据分析流程。 阅读详情

前一段时间给大家详解过 Pandas 的用法,今天再来分享下 Pandas 与 SQL 的对比。

Pandas 和 SQL 有很多相似之处,都是对二维表的数据进行查询、处理,都是数据分析中常用的工具。

对于只会 Pandas 或只会 SQL 的朋友,可以通过今天例子快速学会另一个。

1. 数据查询

首先,读取数据

javascript
复制代码
import pandas as pd
import numpy as np

tips = pd.read_csv('tips.csv')

在这里插入图片描述

tips

1.1 查询列

查询 total_bill和tip 两列

lua
复制代码
tips[["total_bill", "tip"]]

用 SQL 实现:

csharp
复制代码
select total_bill, tip
from tips;
1.2 增加列

查询结果中,新增一列tip_rate

css
复制代码
tips['tip_rate'] = tips["tip"] / tips["total_bill"]

用 SQL 实现:

csharp
复制代码
select *, tip/total_bill as tip_rate
from tips;
1.3 筛选条件

查询 time列等于Dinner并且tip列大于5的数据

css
复制代码
tips[(tips["time"] == "Dinner") & (tips["tip"] > 5.00)]

用 SQL 实现:

sql
复制代码
select *
from tips
where time = 'Dinner' and tip > 5.00;
2. 分组聚合

按照某列分组计数

python
复制代码
tips.groupby("sex").size()

'''
sex
Female     87
Male      157
dtype: int64
'''

用 SQL 实现:

csharp
复制代码
select sex, count(*)
from tips
group by sex;

按照多列聚合多个值

matlab
复制代码
tips.groupby(["smoker", "day"]).agg({"tip": [np.size, np.mean]})

用 SQL 实现:

sql
复制代码
select smoker, day, count(*), avg(tip)
from tips
group by smoker, day;
3. join

构造两个临时DataFrame

ini
复制代码
df1 = pd.DataFrame({"key": ["A", "B", "C", "D"], "value": np.random.randn(4)})
df2 = pd.DataFrame({"key": ["B", "D", "D", "E"], "value": np.random.randn(4)})

先用 Pandas 分别实现inner join、left join、right join和full join。

ini
复制代码
# inner join
pd.merge(df1, df2, on="key")

# left join
pd.merge(df1, df2, on="key", how="left")

# inner join
pd.merge(df1, df2, on="key", how="right")

# inner join
pd.merge(df1, df2, on="key", how="outer")

用 SQL 分别实现:

vbnet
复制代码
# inner join
select *
from df1 inner join df2
on df1.key = df2.key;

# left join
select *
from df1 left join df2
on df1.key = df2.key;

# right join
select *
from df1 right join df2
on df1.key = df2.key;

# full join
select *
from df1 full join df2
on df1.key = df2.key;
4. union

将两个表纵向堆叠

css
复制代码
pd.concat([df1, df2])

用 SQL 实现:

sql
复制代码
select *
from df1

union all

SELECT *
from df2;

将两个表纵向堆叠并去重

scss
复制代码
pd.concat([df1, df2]).drop_duplicates()

用 SQL 实现:

sql
复制代码
select *
from df1

union

SELECT *
from df2;
5. 开窗

对tips中day列取值相同的记录按照total_bill排序。

css
复制代码
(tips.assign(
        rn=tips.sort_values(["total_bill"], ascending=False)
        .groupby(["day"])
        .cumcount()
        + 1
    )
    .sort_values(["day", "rn"])
)

用 SQL 实现:

sql
复制代码
select
    *,
    row_number() over(partition by day order by total_bill desc) as rn
from tips t

day列取值相同的记录会被划分到同一个窗口内,并按照total_bill排序,窗口之间的数据互不影响,这类操作便被称为开窗。

今天的内容就到这里啦。通过几个简单的实践案例大家可以直观感受下 Pandas 和 SQL 在数据处理上的相似之处。

这里给大家分享一份Python全套学习资料,包括学习路线、软件、源码、视频、面试题等等,都是我自己学习时整理的,希望可以对正在学习或者想要学习Python的朋友有帮助!

优快云大礼包:全网最全《全套Python学习资料》免费分享🎁

😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

👉优快云大礼包🎁:全网最全《Python学习资料》免费分享(安全链接,放心点击)👈

​style=“margin: auto” />

1️⃣零基础入门

① 学习路线

对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述
因篇幅有限,仅展示部分资料

2️⃣国内外Python书籍、文档

① 文档和书籍资料

在这里插入图片描述

3️⃣Python工具包+项目源码合集

①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

4️⃣Python面试题

我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

5️⃣Python兼职渠道

而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
在这里插入图片描述
在这里插入图片描述
上述所有资料 ⚡️ ,朋友们如果有需要 📦《全套Python学习资料》的,可以扫描下方二维码免费领取 🆓
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

👉优快云大礼包🎁:全网最全《Python学习资料》免费分享(安全链接,放心点击)👈

​

pandas与sql 对比,持续更新... 欢迎来到诸葛老刘的博客 由于工作关系 , 经常会用到sql和python的pandas模块,两者有很多相似之处,我将整理出系列的对比文章,并保持更新. 若有不尽之处,敬请指出. 基础说明 本文代码环境基于windows 10 和 anaconda3创建的.python3.6虚拟环境 - 下表的名字,在sql中数据叫table, 在pandas中叫df, 在一般的df中id这个字符是不... 阅读详情

相关推荐

抛弃Pandas!用DuckDB+VS Code实现亿级CSV的即查即分析

本文介绍了如何利用DuckDB和VS Code高效处理亿级CSV文件,实现即查即分析。DuckDB作为嵌入式分析型数据库,结合VS Code的轻量级开发环境,提供了零配置、高性能的数据分析解决方案。通过实际案例和性能对比,展示了其在处理大规模数据时的显著优势,包括更低的内存占用和更快的查询速度。

root9的博客 268

pandas:sql能的,我都能!!!

通常我们用sql处理数据库里的数据,其实sql对数据的操作,在pandas中完全可以实现。接下来,让我们根据sql执行顺序,来依次看看pandas对应的方法。

youzi85的博客 2836

SQL窗口函数 vs Pandas rolling:3大场景下数据处理方案选型指南

本文深入比较SQL窗口函数与Pandas rolling在移动窗口函数计算中的差异,涵盖实时报表、历史数据批处理和流式计算三大场景。通过技术原理对比、性能测试和优化建议,帮助开发者根据项目需求选择最适合的数据处理方案,提升计算效率和业务响应速度。

weixin_29056781的博客 289

Pandas与SQL的超强结合,爆赞!

1. 演示数据本文的所有演示数据,均是基于下方的四张表。下面这四张表大家应该不陌生,这就是网传50道经典MySQL面试题中使用到的几张原表。关于下方各表之间的关联关系,我就不给大家说明了,仔细观察字段名,应该就可以发现。2. pandasql的使用1)简介pandas中的DataFrame是一个二维表格,数据库中的表也是一个二维表格,因此在pandas中使用sql语句就显...

张俊红的个人博客 3649

Python与数据分析库Pandas与SQL

Pandas是一个用于数据处理和分析的Python库,提供了大量的数据结构和函数,使数据分析工作更加简单和高效。SQL是一种用于管理关系型数据库的语言,已经成为数据存储和管理领域的标准。在数据科学中,Python是最受欢迎的编程语言之一,这是由于其易于学习的语法和强大的生态系统。Python的库和框架数量众多,使得数据科学家可以快速、高效地完成各种任务,例如数据收集、数据清洗、数据处理和可视化。Pandas是用于数据处理和分析的Python库,它提供了大量的数据结构和函数,可以轻松地处理各种数据集。

吃不胖. 665

流批一体计算引擎-19-处理超大结构化CSV数据时选择Flink和Pandas的对比

对于超大的CSV文件,Pandas虽然有分块逐步加载的方式,但仍建议选择Flink,注意CSV文件去掉表头。

qq_20466211的博客 258

pandas和mysql对比_[Pandas]一个Pandas VS MySQL SQL 的性能对比

引言最近使用MySQL做一些数据统计比较多。 有时候为了省事直接写出了一个略复杂的SQL查询, 直接获得最后的结果。 但是总是觉得比较慢。 下面做了一个改动,简述如下:* 原来:纯粹使用SQL查询, 得到最后的结果* 改进:使用SQL查询原始数据+Pandas进行数据处理* 结论:改进方案的性能提升了 300%原方案:sql = """select t2_id, name, col2fr...

weixin_35304632的博客 1224

window部署open claw(使用wsl-Ubuntu-docker部署)

本文详细介绍了在Windows 11系统下通过WSL2+Docker部署OpenClaw的完整流程。首先需要满足硬件配置要求并开启虚拟化功能,然后依次完成WSL2安装配置、Docker Desktop安装、OpenClaw镜像拉取等步骤。重点说明了端口映射、socat转发配置及openclaw.json文件修改方法。最后通过验证WSL2内网IP和端口访问服务。该方案具有最佳兼容性,能有效避免Windows环境下的依赖冲突问题。

Kmoyic的博客 2764

pandas mysql 性能_[Pandas]一个Pandas VS MySQL SQL 的性能对比

引言最近使用MySQL做一些数据统计比较多。 有时候为了省事直接写出了一个略复杂的SQL查询, 直接获得最后的结果。 但是总是觉得比较慢。 下面做了一个改动,简述如下:* 原来:纯粹使用SQL查询, 得到最后的结果* 改进:使用SQL查询原始数据+Pandas进行数据处理* 结论:改进方案的性能提升了 300%原方案:sql = """select t2_id, name, col2fr...

weixin_36436683的博客 751

HyperMesh二次开发实战:自动化Comp与材料属性批量绑定

本文详细介绍了HyperMesh二次开发中自动化Comp与材料属性批量绑定的实战技巧。通过TCL脚本实现批量创建属性卡、智能材料分配和异常处理,大幅提升前处理效率,适用于汽车、航空航天等领域的复杂模型处理。

weixin_29214691的博客 691

STM32 USB AUDIO实战指南——从零构建音频设备

本文详细介绍了如何使用STM32F407构建USB音频设备,从硬件准备到软件配置,再到音频播放和录制功能的实现。通过STM32CubeMX配置和实战代码示例,帮助开发者快速掌握USB Audio Class规范,实现低延迟、高质量的音频传输,适用于语音交互、音乐播放等多种场景。

weixin_42549037的博客 485

python mysql库对比_一个Pandas VS MySQL SQL 的性能对比

引言最近使用MySQL做一些数据统计比较多。 有时候为了省事直接写出了一个略复杂的SQL查询, 直接获得最后的结果。 但是总是觉得比较慢。 下面做了一个改动,简述如下:* 原来:纯粹使用SQL查询, 得到最后的结果* 改进:使用SQL查询原始数据+Pandas进行数据处理* 结论:改进方案的性能提升了 300%原方案:sql = """select t2_id, name, col2from (s...

weixin_39628186的博客 840

Python:同花顺全数据接口

# -*- coding: utf-8 -*- from iFinDPy import * from datetime import datetime import pandas as pd import time as _time import json from threading import Thread,Lock,Semaphore import requests sem = Semaphore(5) # 此变量用于控制最大并发数 dllock = Lock() #此变量用来控制实时行情推

代码过客 4万+

MovieLens 数据集 EDA 对比:Pandas 基础统计 vs SQL 查询的 5 项效率分析

本文对比了Pandas和SQL在MovieLens数据集上进行探索性数据分析(EDA)的效率差异,从代码简洁性、执行速度、内存消耗、可扩展性和易用性五个维度进行全面分析。结果显示,SQL在处理大数据集时具有明显的性能优势,特别是在分组聚合和关联查询方面,而Pandas则更适合快速原型开发和复杂数据转换。文章为数据工程师和分析师提供了实用的工具选择建议。

weixin_29056101的博客 325

使用electron静默打印

使用electron静默打印 1.使用electron打印的理由 很多情况下程序中使用的打印都是用户无感知的。并且想要灵活的控制打印内容,往往需要借助打印机给我们提供的api再进行开发,这种开发方式非常繁琐,并且开发难度较大。 electron提供的打印api可以非常灵活的控制打印设置的显示,并且可以通过html来书写打印内容。 2.api ele...

w1366352655的博客 945

手把手教你学Simulink实例--基于simulink搭建起一个基础的矩阵变换器仿真模型

矩阵变换器(Matrix Converter, MC)是一种直接将交流电源转换为另一频率和幅值的交流电源的电力电子设备,它不需要中间的直流环节。这种变换器通过控制一组双向开关来实现对输入电压的精确控制,从而产生所需的输出电压波形。Simulink提供了强大的仿真环境,可以用于设计、分析和验证基于矩阵变换器的电源系统。

MHD0815的博客 340

SQL开发者快速上手Pandas:核心概念与实战对照

数据分析领域中,SQL和Pandas是两种最常用的数据处理工具。SQL作为关系型数据库的标准查询语言,通过表连接、分组聚合等操作实现数据查询;而Pandas作为Python的数据分析库,其DataFrame结构本质上是一个内存中的数据库表。理解SQL到Pandas的概念映射是快速上手的关键:SELECT对应列选择、WHERE对应条件筛选、GROUP BY对应分组操作。这种映射关系特别适合数据库开发者转型数据分析,能有效利用现有SQL知识降低学习成本。在实际工程中,Pandas的向量化操作和链式调用比SQL更

weixin_33739523的博客 379

VS2019编译使用log4cplus 1.2.0

logger.properties 文件。第三步,创建项目来测试,配置库。第二步,使用VS2019编译。

h a 6 6 6 c k 为 你解决复杂难题! 529

DuckDB vs Pandas: 当数据分析遇上SQL魔法

本文对比了DuckDB与Pandas在数据分析中的性能与应用场景,重点介绍了DuckDB的SQL魔法和轻量级嵌入式数据库优势。通过架构对比和实战测试,展示了DuckDB在处理大规模数据时的卓越性能,以及与Python生态的无缝集成。适合数据分析师在处理复杂查询和大数据集时选择DuckDB,而Pandas则更适合小规模数据和探索性分析。

ansible6ops的博客 669

【Bluetooth蓝牙开发】九、BLE协议之GATT

1、开篇词 2、蓝牙开发入门 3、蓝牙协议栈总览 4、蓝牙协议栈——物理层 5、蓝牙协议栈——链路层 6、蓝牙协议栈——传输层 7、蓝牙协议栈——L2CAP协议 8、蓝牙协议栈——ATT协议 9、蓝牙协议栈——GATT协议 10、蓝牙通信流程分析 11、蓝牙协议栈——Bluez交叉编译 12、蓝牙调试工具汇总

Donge's Blog 4765

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

SQL HAVING与Pandas GroupBy:数据聚合的两种思维与工程选型

数据聚合是数据处理中的核心操作,其本质是对数据集进行分组和汇总,以提取统计信息或模式。从原理上看,聚合操作通常基于分组键将数据划分为子集,然后对每个子集应用聚合函数(如计数、求和、去重计数等)。在技术实现上,SQL的HAVING子句代表了声明式范式,用户只需指定目标条件,由数据库优化器自动选择执行计划;而Pandas的GroupBy操作则体现了命令式范式,用户通过明确的步骤指令控制计算流程。这两种方式各有其技术价值:声明式SQL擅长处理大规模、分布式的数据,尤其在数据仓库和ETL流程中性能高效;命令式Pan

weixin_30386713的博客 342

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Pandas vs SQL

大家好,我是辰哥~今天再来分享下 Pandas 与 SQL 的对比。Pandas 和 SQL 有很多相似之处,都是对二维表的数据进行查询、处理,都是数据分析中常用的工具。对于只会 Pand...

公众号:Python研究者 311

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

pandas与SQL的对比

pandas与SQL的对比

听海边涛声 382

Pandas 的 Index 与 SQL Index 的对比

是数据的固有组成部分,用于标签化访问和对齐,类似 Excel 的行号 / 列名。SQL Index是查询的加速工具,通过额外的数据结构优化 WHERE 条件,类似书的索引页。我们习惯了 SQL 索引的优化路径,在 Pandas 中更应该关注如何设计合理的Index标签(如用日期、ID 作为 Index),而不是追求查询速度的优化(Pandas 的性能瓶颈主要在内存,而非索引)。

wh_xia_jun的专栏 1040

数据分析之Pandas VS SQL!

题外话之今日新闻联播感动时刻,念念不忘,必有回响!AbstractPandas是一个开源的Python数据分析库,结合 NumPy 和 Matplotlib 类库,可以在...

大数据技术派 670
上一篇: 高中生自学Python,这里给大家一些建议
下一篇: 3263页学习资料,一本在手,python不愁!
Llama-Turbo
博客等级 码龄4年 9901粉丝 2024原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值