Pandas闪回咒!如何在Python中重写SQL查询?

开发 后端
工作中,频繁切换是件麻烦事儿。一些程序员只熟悉SQL中的数据操作,却不熟悉Python中的数据操作,因此在完成项目时,我们不得不频繁地在SQL和Python之间进行切换,导致了工作效率低下和生产能力下降。

工作中,频繁切换是件麻烦事儿。一些程序员只熟悉SQL中的数据操作,却不熟悉Python中的数据操作,因此在完成项目时,我们不得不频繁地在SQL和Python之间进行切换,导致了工作效率低下和生产能力下降。

本文就教你一种方法,使用Pandas在Python中轻松重现SQL结果。

入门指南

如果电脑中没有pandas包,则需要先安装一下:

  1. Conda install pandas 

在这个阶段,我们将使用著名的Kaggle泰坦尼克数据集:https://www.kaggle.com/c/titanic/data?select=test.csv。

安装软件包并下载数据后,需要将其导入Python环境中:

  1. import pandas as pd 
  2.              titanic_df = pd.read_csv("titanic_test_data.csv"

我们将使用pandas数据框架来存储数据,还将用到各种pandas函数来操作数据框架。

  1. SELECTDISTINCTCOUNT, LIMIT 

让我们从经常使用的简单SQL查询开始。

 

titanic_df [“ age”]。unique()将在此处返回唯一值的数组,因此需要使用len()来获取唯一值的计数。

  1. SELECTWHEREORANDIN(有条件选择) 

现在你知道了如何以简单的方式探索数据框架,接着来尝试一些条件吧(在SQL中是WHERE子句)。

 

如果只想从数据框架中选择特定的列,则可以使用另一对方括号进行选择。注意,如果要选择多列,则需要在方括号内放置数组[“ name”,“ age”]。

isin()与SQL中的IN完全相同。要使用NOT IN,需要在Python中使用negation(〜)来获得相同的结果。

  1. GROUP BYORDER BYCOUNT 

 GROUP BY和ORDER BY也是用来探索数据的流行SQL,让我们在Python中尝试一下。

 

如果只想对COUNT进行排序,可以将布尔值传递给sort_values函数;如果想对多列进行排序,则必须将布尔数组传递给sort_values函数。sum()函数将提供数据框架中的所有聚合数值总和列,如果只需要特定列,则需要使用方括号指定列名。

  1. MINMAX,MEAN,MEDIAN 

最后,来尝试一些常见的统计功能,这些功能对于数据探索非常重要。

 

 

由于SQL没有中位数函数,因此将使用BigQuery APPROX_QUANTILES获取年龄中位数。pandas聚合函数.agg()还支持其他函数,例如sum。

拒绝频繁切换,轻松重现查询,你值得拥有!

你可以在我的Github中查看完整的脚本:https://github.com/chingjunetao/medium-article/tree/master/rewrite-sql-with-python

本文转载自微信公众号「读芯术」,可以通过以下二维码关注。转载本文请联系读芯术公众号。

 

责任编辑:武晓燕 来源: 读芯术
相关推荐

2020-11-19 15:26:36

SQLPandas代码

2024-11-14 10:00:00

Python继承

2018-12-25 16:30:15

SQL Server高效分页数据库

2021-10-12 05:00:27

PandasSQL查询

2017-10-26 15:32:23

数据库Oracle闪回查询

2023-10-18 18:31:04

SQL查询数据

2021-07-09 12:37:31

GoPython编程语言

2022-06-22 09:56:19

PythonMySQL数据库

2021-08-12 08:00:00

Pandas数据分析SQL

2024-11-26 08:00:00

SQLPandasPandaSQL

2014-12-15 09:59:28

LinuxApache

2009-07-15 15:18:01

JDBC连接SQL S

2020-07-06 15:50:41

Python文件Linux

2021-07-02 20:37:19

Python代码SRP

2024-02-20 09:54:20

MySQL数据库

2021-04-09 23:00:12

SQL数据库Pandas

2021-01-18 17:23:30

代码调试VS Code

2023-09-01 08:19:21

Flask

2010-04-15 11:33:39

Oracle数据库

2010-04-15 12:43:06

Oracle数据库
点赞
收藏

51CTO技术栈公众号