Pandas vs SQL,招招经典!

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

8329974890de7abe4b3064ba6b87e3ad.png

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

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


1. 数据查询

首先,读取数据

import pandas as pd
import numpy as np

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

f3e19602089cee181788914112860b3d.png
tips
1.1 查询列

查询 total_bill和tip 两列

tips[["total_bill", "tip"]]

用 SQL 实现:

select total_bill, tip
from tips;
1.2 增加列

查询结果中,新增一列tip_rate

tips['tip_rate'] = tips["tip"] / tips["total_bill"]

用 SQL 实现:

select *, tip/total_bill as tip_rate
from tips;
1.3 筛选条件

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

tips[(tips["time"] == "Dinner") & (tips["tip"] > 5.00)]

用 SQL 实现:

select *
from tips
where time = 'Dinner' and tip > 5.00;

2. 分组聚合

按照某列分组计数

tips.groupby("sex").size()

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

用 SQL 实现:

select sex, count(*)
from tips
group by sex;

按照多列聚合多个值

tips.groupby(["smoker", "day"]).agg({"tip": [np.size, np.mean]})

用 SQL 实现:

select smoker, day, count(*), avg(tip)
from tips
group by smoker, day;

3. join

构造两个临时DataFrame

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。

# 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 分别实现:

# 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

将两个表纵向堆叠

pd.concat([df1, df2])

用 SQL 实现:

select *
from df1

union all

SELECT *
from df2;

将两个表纵向堆叠并去重

pd.concat([df1, df2]).drop_duplicates()

用 SQL 实现:

select *
from df1

union

SELECT *
from df2;

5. 开窗

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

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

用 SQL 实现:

select
    *,
    row_number() over(partition by day order by total_bill desc) as rn
from tips t

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

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

推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案

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

相关推荐

Pandas 与 SQL 常用操作对比

在数据处理和分析领域,Pandas 和 SQL 都是非常强大的工具。虽然它们具有不同的语法和应用场景,但在很多操作上具有相似的功能。下面我们将详细对比 Pandas 和 SQL 在常见数据操作方面的异同。

C'mon的博客 1561

Pandas vs SQL

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

公众号:Python研究者 311

macOS Monterey官方镜像高速下载指南(附迅雷链接+兼容性清单)

本文提供macOS Monterey官方镜像的高速下载指南,重点介绍利用迅雷等工具加速下载官方安装包的有效方法。同时,详细列出了系统兼容性清单,帮助用户在下载前确认设备支持,并分享了从下载、验证到安全安装的完整流程与常见问题解决方案。

j7k8l的博客 2199

Pandas使用教程 - Pandas 与 SQL 数据库交互

数据读取使用和从 SQL 数据库中提取数据,并将查询结果转换为 DataFrame。确保 SQL 查询语句正确、数据已排序,并利用 SQLAlchemy 管理连接。数据写入利用将 DataFrame 数据写入 SQL 数据库,支持替换、追加和失败等处理策略。根据需要选择是否写入索引,保证数据格式的一致性。数据库连接管理通过 SQLAlchemy 建立高效、可扩展的数据库连接。合理配置连接池参数,确保在并发环境下获得稳定的数据库访问性能。实际案例。

闲人编程的博客 2460

java 对接工行聚富通H5聚合支付接口

java 对接工行聚富通H5聚合支付接口

lgl的博客 861

别再手动调波形了!用STM32G474的HRTIM+DAC生成精密锯齿波,附完整CubeMX配置

本文详细介绍了如何利用STM32G474的高分辨率定时器(HRTIM)和数模转换器(DAC)协同工作,实现高精度锯齿波生成。通过CubeMX配置指南、关键寄存器计算和实践技巧,帮助开发者快速掌握全硬件实现的波形生成方案,显著提升嵌入式系统的波形控制精度和响应速度。

weixin_28716769的博客 247

Pandas vs SQL全面对比

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

pythonhy的博客 1201

生成模型实战 | 基于Transformer生成音乐

本文介绍了基于Transformer架构的音乐生成方法,将音乐视为一系列事件序列进行处理。与将音乐表示为多维图像的MuseGAN不同,该方法使用类似GPT的仅解码器模型,基于先前事件预测下一个音乐事件。模型使用MIDI格式的钢琴音乐数据,通过分词处理将音符转换为note-on、note-off、time-shift和velocity四种事件类型,共388个独特词元,映射为索引序列后输入网络。训练完成后,可通过调整温度参数控制生成音乐的新颖性,从而创作出风格类似训练数据且连贯逼真的音乐作品。

盼小辉丶的博客 5915

[1223]Pandas遇到SQL,如何做关联查询(pandasql)

首先是表的横向连接,顾名思义,就是在原基础表,往下一空行复制粘贴新的数据,要求两张表的列标题都是一样的,才能正常连接,这里使用UNION ALL进行连接,表示将列标题相同的两张表连接起来,如果是使用UNION连接,两张中相同的两行只会保留一行连接。纵向连接是表格连接中使用最广泛的连接,纵向连接又可以分为内连接和外连接,内连接,连接表都匹配的记录才会出现在最终的结果集,并且连接顺序无关,这里内连接的第一种办法是使用WHERE语句,当两个表的ID相同时进行连接。构建第二张表,用于数据表的横向连接。

周小董 1007

【24届数字IC秋招总结】笔试面试篇——投递公司及时间节点汇总

从实习、提前批到秋招投递的有进展的公司进行汇总,关于各个公司的笔试和面试经历详见其他帖子。

qq_42135020的博客 1923

MyBatis-Plus 实战:敏感字段自动加解密支持模糊查询

本文基于MyBatis-Plus框架提出了一种全链路敏感字段加密方案。通过自定义TypeHandler实现数据入库自动加密和查询自动解密,结合重写LambdaQueryWrapper处理查询条件加密,并适配多种查询方式。方案核心包括:1)AESUtil工具类提供加解密基础能力;2)EncryptTypeHandler实现字段类型转换;3)实体类通过注解配置加密字段。该方案在保证数据安全的同时,对业务代码侵入性小,支持姓名、手机号等敏感信息的全流程加密处理,满足系统开发的安全需求。

蔡定努 596

Pandas vs SQL,招招经典

Pandas 和 SQL 有很多相似之处,都是对二维表的数据进行查询、处理,都是数据分析中常用的工具。 对于只会 Pandas 或只会 SQL 的朋友,可以通过今天例子快速学会另一个。 1. 数据查询 首先,读取数据 import pandas as pd import numpy as np tips = pd.read_csv('tips.csv') 1.1 查询列 查询 total_bill和tip 两列 tips[["total_bill", "tip"]] 用 SQL 实现: selec.

m0_59235945的博客 120

装配完整性检查系统:基于YOLOv10的螺丝/零件缺失自动检测(含UI界面与完整代码)

建议自行采集装配场景数据,标注缺失螺丝、错误零件等,模拟真实缺陷。手机/工业相机采集图像;使用LabelImg进行目标标注;转换为 YOLO 格式。本文构建了一个完整的装配完整性检测系统,基于 YOLOv10 实现高精度螺丝缺失检测,并使用 PyQt5 构建了图形界面,实现一键导入与可视化检测流程,适用于工业质检自动化部署。项目可灵活扩展至零件缺失、错装、错位、顺序错误等检测场景,是深度学习在制造业中落地的典型应用案例之一。

YOLO 703

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

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

张俊红的个人博客 3649

Windows 镜像包大全(附百度云下载链接)

插入U盘,找到下载好的两个驱动软件,并安装,先打开驱动人生万能网卡版,安装好网卡驱动,可以接入wifi或者网线了,然后打开驱动精灵,按照提示,安装所有的驱动(中间要是让你重启,就先选择稍后再说,如果有的驱动安装好之后非要你重启,关不掉的那种,那你就重启吧),等全部安装好了,重启电脑。如果你有显卡,这里以英伟达举例,我是GTX960的,当你的驱动都安装好后,右键桌面,会出现一个英伟达控制面板。安装软碟通,下载之后,一直下一步就ok,啥也不用配置,到了最后一项点击“继续试用”即可。(下载里面的网卡版即可),

悦分享 7376

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【Pandas vs SQL】数据分析代码逐行比对,孰优孰劣?

在数据分析领域,pandas和sql谁更厉害?分别从增加、删除、修改、查询、左连接、右连接、内连接、外连接等方面逐一代码比对。

马哥的专栏 5026

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

mysql与pandas谁快,pandas和SQL哪个快

python pandas to_sql将excel数据导入到MySQL数据库用python pandas to_sql写了个脚本,向MySQL数据库导入excel数据,本地其实吧, 一分钟10W条数据不能算太快,10秒10W条还差不多。 可以研究一下线程+进程来处理, 或者协程+进程。处理速度肯定能让你喊一声“卧槽1 哈哈。 言归正传, 你说的别的MySQL是不是远程的,通过ip来连接的哈, 如...

weixin_30134145的博客 3188

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

你心目中的数据分析 Top 1 选 Pandas 还是选 SQL?

作者 | 俊欣来源 |关于数据分析与可视化今天小编打算来讲一下Pandas和SQL之间语法的差异,相信对于不少数据分析师而言,无论是Pandas模块还是SQL,都是日常学习工作当中用的非常多的工具,当然我们也可以在Pandas模块当中来调用SQL语句,通过调用read_sql()方法。建立数据库首先我们通过SQL语句在新建一个数据库,基本的语法相信大家肯定都清楚,CRE...

AI科技大本营 377

Pandas 与 SQL 的比较

由于许多潜在的 用户对SQL有一定的了解,因此本页旨在提供一些示例,说明如何使用 Pandas 执行各种 SQL 操作。 如果您不熟悉Pandas,您可能需要先阅读10 Minutes to pandas以熟悉该库。 按照惯例,我们按如下方式导入 pandas 和 NumPy: In [1]: import pandas as pd In [2]: import numpy as np 大多数示例将利用tips在熊猫测试中找到的数据集。我们将数据读入一个名为 DataFrame 的..

allway2的博客 1106

Pandas&SQL数据处理对比

Pandas&SQL数据处理对比(适用于初中级进阶写法)

二八定律法则 3457

pandas与SQL的对比

pandas与SQL的对比

听海边涛声 382

Pandas 和 SQL对比

自认为比较熟悉SQL, 刚开始使用Pandas的时候,总觉得好多地方不如SQL处理来的便捷.但是在熟悉Pandas后,发现Pandas往往也有很简单的解决办法, 部分地方恰好是Pandas的优势地方.下面列出一些曾经遇到的场景: 滑动窗口/平滑各种曲线 应用场景: 当每个月份数据抖动比较大的时候,想把n个月的数据累积到一个月然后平均计算趋势. DB解决方案: 没想到特别简单的方法.希望...

flyfoxs的专栏 5978

一场pandas与SQL的巅峰大战

点击上方“超哥的杂货铺”,轻松关注 作为一名数据分析师,平常用的最多的工具是SQL(包括MySQL和Hive SQL等)。对于存储在数据库中的数据,自然用SQL提取会比较方便,但有时我们会处理一些文本数据(txt,csv),这个时候就不太好用SQL了。Python也是分析师常用的工具之一,尤其pandas更是一个数据分析的利器。虽然二者的语法,原理可能有很大差别,但在实现的功能上,他们有很...

hitchenghengchao的博客 4845

对Python中的Pandas进行SQL查询——pandasql

背景 众所周知,用SQL语句进行数据查询十分方便,因为跟自然语言更接近。 pandas其实是模仿R语言中的DataFrame设计的一个Python库。 R语言中可以使用sqldf实现SQL查询;pandas中也有类似的库:pandasql。 pandasql介绍 Overview pandasql allows you to query pandas DataFrames using SQL sy

困而学之,学思并重 2万+

一场pandas与SQL的巅峰大战(七)

点击上方“超哥的杂货铺”,轻松关注本文目录pandasql的使用 简介 安装 使用pandas操作MySQL数据库 read_sql to_sql巅峰系列总...

hitchenghengchao的博客 2359

pandas和SQL对比

参考:https://blog.youkuaiyun.com/weixin_39791387/article/details/81391621 https://www.cnblogs.com/niuniuc/p/10490159.html https://blog.youkuaiyun.com/weixin_42147780/article/details/100674967

qq_39817865的博客 411
上一篇: 阿里美国员工薪资曝光!工程师底薪最高超20万美元
下一篇: 摸鱼被监控!别怕,用 Python 写摸鱼监控神器!
菜鸟学Python
博客等级 码龄9年 8087粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值