对比 pandas 与 SQL

devtools/2024/10/9 7:51:19/

pandas__SQL_SQL__pandas__1">对比 pandas 与 SQL:使用 SQL 实现 pandas 的经典操作

在数据分析中,pandas 和 SQL 都是非常重要的工具。虽然它们工作在不同的环境中(pandas 是 Python 的库,SQL 是查询数据库的语言),但许多操作是相似的。本文将对比 pandas 的经典操作,并展示如何用 SQL 来实现相同的功能。

目录

  1. 读取数据
  2. 选择列
  3. 过滤行
  4. 排序数据
  5. 分组聚合
  6. 连接表
  7. 应用函数
  8. 处理缺失值
  9. 添加新列
  10. 重命名列
  11. 数据类型转换
  12. 透视表操作

读取数据

Pandas

import pandas as pd
df = pd.read_csv('data.csv')

SQL

sql">-- 从表中选择所有数据
SELECT * FROM table_name;

选择列

Pandas

df_selected = df[['column1', 'column2']]

SQL

sql">SELECT column1, column2 FROM table_name;

过滤行

Pandas

df_filtered = df[df['column'] > 10]

SQL

sql">SELECT * FROM table_name
WHERE column > 10;

排序数据

Pandas

df_sorted = df.sort_values(by='column', ascending=False)

SQL

sql">SELECT * FROM table_name
ORDER BY column DESC;

分组聚合

Pandas

df_grouped = df.groupby('column').agg({'value_column': 'mean'})

SQL

sql">SELECT column, AVG(value_column) as mean_value
FROM table_name
GROUP BY column;

连接表

Pandas

df_merged = pd.merge(df1, df2, on='key', how='inner')

SQL

sql">SELECT *
FROM table1
INNER JOIN table2
ON table1.key = table2.key;

应用函数

Pandas

df['new_column'] = df['column'].apply(lambda x: x * 2)

SQL

sql">SELECT *, (column * 2) as new_column
FROM table_name;

处理缺失值

Pandas

  • 删除缺失值

    df_dropna = df.dropna()
    
  • 填充缺失值

    df_fillna = df.fillna(0)
    

SQL

  • 删除缺失值

    sql">SELECT * FROM table_name
    WHERE column IS NOT NULL;
    
  • 填充缺失值

    sql">SELECT COALESCE(column, 0) as column
    FROM table_name;
    

添加新列

Pandas

df['new_column'] = df['column1'] + df['column2']

SQL

sql">SELECT *, (column1 + column2) as new_column
FROM table_name;

重命名列

Pandas

df_renamed = df.rename(columns={'old_name': 'new_name'})

SQL

sql">SELECT column as new_name
FROM table_name;

数据类型转换

Pandas

df['column'] = df['column'].astype(float)

SQL

sql">SELECT CAST(column AS FLOAT) as column
FROM table_name;

透视表操作

Pandas

df_pivot = df.pivot_table(index='column1', columns='column2', values='value_column', aggfunc='sum')

SQL

SQL 不直接支持透视操作,但可以使用条件聚合来模拟:

sql">SELECTcolumn1,SUM(CASE WHEN column2 = 'value1' THEN value_column ELSE 0 END) as value1_sum,SUM(CASE WHEN column2 = 'value2' THEN value_column ELSE 0 END) as value2_sum
FROM table_name
GROUP BY column1;

总结

pandas 和 SQL 在数据处理中有许多相似的操作。理解两者之间的对应关系有助于在不同的环境中应用相同的分析技巧。无论是数据筛选、排序、分组聚合还是数据清洗,都可以找到对应的方法来实现。


http://www.ppmy.cn/devtools/123273.html

相关文章

API接口开发系列文章:构建高效、安全与可扩展的API服务

前言 在当今的数字化时代,API(应用程序编程接口)已成为连接不同系统、服务和应用的核心桥梁。无论是企业内部的数据交互,还是面向第三方的服务开放,API都扮演着至关重要的角色。本系列文章将深入探讨API接口开发的各个…

VSCode使用Code Runner插件运行时,路径错误问题

1. 问题介绍 由于Code Runner插件的工作目录与文件执行目录不同,而导致路径错误! 示例演示: 创建根目录test-dir,然后在里面分别创建两个目录code和data,分别存放Python程序read_file.py和输入数据input.txt read_fi…

微服务——分布式事务

目录 分布式事务 1.1分布式事务的特性 1.2分布式事务应用背景 ​编辑 1.3.认识Seata 1.4部署TC服务 1.4.1.准备数据库表 1.4.2.准备配置文件 1.4.3.Docker部署 1.5.微服务集成Seata 1.5.1.引入依赖 1.5.2.改造配置 1.5.3.添加数据库表 ​编辑1.6.XA模式 1.6.1.两…

宠物咖啡馆业务流程:SpringBoot框架的高效实现

5系统详细实现 5.1 管理员模块的实现 5.1.1 用户信息管理 基于Spring Boot的宠物咖啡馆平台的设计与实现的系统管理员可以管理用户,可以对用户信息添加修改删除以及查询操作。具体界面的展示如图5.1所示。 图5.1 用户信息管理界面 5.1.2 看护师信息管理 系统管理员…

Redis: 主从复制读写分离环境搭建

概述 Redis 的单机模式实际上就是在一个服务器上装了一个单节点的Redis通过简单的配置和简单的命令启动起来就可以使用这种搭建环境,不保证高可用的情况下,完全没有问题如果说你的项目必须要具备高可用,而且 Redis 也要提供更高的性能这个单…

设计模式——命令模式

哈喽,各位盆友们!我是你们亲爱的学徒小z,今天给大家分享一篇有关设计模式的文章,希望可以帮助到大家。 文章目录 定义样例介绍1.类简介2.具体代码 通用类图1.通用类介绍2.通用代码3.实际应用4.优点5.缺点 使用场景撤销问题 定义 …

Chrome无法拖入加载.crx扩展文件(以IDM为例)

问题原因:新版本的Chrome浏览器已不支持加载.crx文件 解决办法:将.crx文件压缩为.zip文件,解压缩后再加载到Chrome中 以IDM的.crx文件作为示例; IDM的.crx文件位于C:\Program Files (x86)\Internet Download Manager; 将IDMGCE…

Java如何调用构造函数和方法以及使用

调用构造函数的格式 构造函数在创建新对象时被调用。调用格式如下: ClassName objectName new ClassName(parameters); ClassName:你需要创建其实例的类的名称。 objectName:你将创建的对象的名称。 parameters:如果你使用的是…