当前位置: 首页 > article >正文

对比 pandas 与 SQL

对比 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

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

选择列

Pandas

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

SQL

SELECT column1, column2 FROM table_name;

过滤行

Pandas

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

SQL

SELECT * FROM table_name
WHERE column > 10;

排序数据

Pandas

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

SQL

SELECT * FROM table_name
ORDER BY column DESC;

分组聚合

Pandas

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

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

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

应用函数

Pandas

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

SQL

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

处理缺失值

Pandas

  • 删除缺失值

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

    df_fillna = df.fillna(0)
    

SQL

  • 删除缺失值

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

    SELECT COALESCE(column, 0) as column
    FROM table_name;
    

添加新列

Pandas

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

SQL

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

重命名列

Pandas

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

SQL

SELECT column as new_name
FROM table_name;

数据类型转换

Pandas

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

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 不直接支持透视操作,但可以使用条件聚合来模拟:

SELECT
  column1,
  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.kler.cn/news/337332.html

相关文章:

  • 0x11 科迈 RAS系统 Cookie验证越权漏洞
  • R中线性回归及其权重和截距的计算
  • Shiro认证(Authentication)
  • 录制真人出镜视频一个简单方法
  • Python和C++混淆矩阵地理学医学物理学视觉语言模型和算法模型评估工具
  • JAVA学习-练习试用Java实现“矩形区域不超过 K 的最大数值和 Ⅲ”
  • 什么是网络安全
  • CSS 鼠标悬停时让父元素和子元素以不同的方式进行变换
  • 达梦8-数据守护集群主备故障实验和脑裂处理
  • JavaScript 与 HTML 的结合
  • 大数据行业应用实训室建设方案
  • 鸿蒙next开启地图服务
  • 【CTF Web】Pikachu 远程文件包含 Writeup(文件包含漏洞+GET请求)
  • 无锡卓瓷X哲讯智能科技,SAP项目正式启动!
  • CPU中的寄存器是什么以及它的工作原理是什么?
  • 如何查看app 是否有动态库依赖
  • 【SQL】掌握SQL查询技巧:数据聚合与分析
  • 毕业设计选题:基于ssm+vue+uniapp的模拟考试小程序
  • react项目引入ant-design
  • ​牧​原​二​面​