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

SQL中的聚合方法与Pandas的对应关系

在SQL和Pandas中,聚合方法是用来对数据进行汇总统计的重要工具。下面是SQL中的各种聚合方法及其与Pandas中相应操作的对应关系:

1. COUNT

  • SQL:

    • COUNT(*) 返回表中的行数。
    • COUNT(column) 返回指定列中非空值的数量。
  • Pandas:

    • count() 方法用于计算非空值的数量。
    • 示例代码:
      count_result = df['column'].count()
      

2. SUM

  • SQL:

    • SUM(column) 返回指定列中所有值的总和。
  • Pandas:

    • sum() 方法用于计算指定列中所有值的总和。
    • 示例代码:
      sum_result = df['column'].sum()
      

3. AVG / AVERAGE

  • SQL:

    • AVG(column) 返回指定列中所有值的平均值。
  • Pandas:

    • mean() 方法用于计算指定列中所有值的平均值。
    • 示例代码:
      avg_result = df['column'].mean()
      

4. MIN

  • SQL:

    • MIN(column) 返回指定列中的最小值。
  • Pandas:

    • min() 方法用于计算指定列中的最小值。
    • 示例代码:
      min_result = df['column'].min()
      

5. MAX

  • SQL:

    • MAX(column) 返回指定列中的最大值。
  • Pandas:

    • max() 方法用于计算指定列中的最大值。
    • 示例代码:
      max_result = df['column'].max()
      

6. GROUP BY

  • SQL:

    • GROUP BY column 用于对指定列中的值进行分组。
    • 可以结合 COUNT, SUM, AVG, MIN, MAX 等聚合函数一起使用。
  • Pandas:

    • groupby() 方法用于对DataFrame中的数据进行分组。
    • 可以结合 count(), sum(), mean(), min(), max() 等方法一起使用。
    • 示例代码:
      grouped_df = df.groupby('column').agg({'other_column': 'sum'})
      

7. DISTINCT

  • SQL:

    • DISTINCT column 返回指定列中的唯一值。
  • Pandas:

    • unique() 方法用于获取指定列中的唯一值。
    • 示例代码:
      unique_values = df['column'].unique()
      

8. HAVING

  • SQL:

    • HAVING condition 用于过滤 GROUP BY 后的结果集。
  • Pandas:

    • 没有直接对应的 having 方法,但可以使用 groupby() 结合 filter() 方法来实现类似功能。
    • 示例代码:
      filtered_df = df.groupby('column').filter(lambda x: x['other_column'].sum() > threshold)
      

示例代码

假设我们有一个DataFrame df,我们将演示这些聚合操作:

import pandas as pd# 创建示例 DataFrame
data = {'category': ['A', 'B', 'A', 'B', 'A', 'B'],'value': [10, 20, 30, 40, 50, 60]
}
df = pd.DataFrame(data)# COUNT
count_result = df['category'].count()
print("COUNT:")
print(count_result)# SUM
sum_result = df['value'].sum()
print("\nSUM:")
print(sum_result)# AVG / AVERAGE
avg_result = df['value'].mean()
print("\nAVG:")
print(avg_result)# MIN
min_result = df['value'].min()
print("\nMIN:")
print(min_result)# MAX
max_result = df['value'].max()
print("\nMAX:")
print(max_result)# GROUP BY
grouped_df = df.groupby('category').agg({'value': ['sum', 'mean', 'min', 'max']})
print("\nGROUP BY:")
print(grouped_df)# DISTINCT
unique_categories = df['category'].unique()
print("\nDISTINCT:")
print(unique_categories)# HAVING
threshold = 50
filtered_df = df.groupby('category').filter(lambda x: x['value'].sum() > threshold)
print("\nHAVING:")
print(filtered_df)

输出示例

假设DataFrame如下所示:

  category  value
0        A     10
1        B     20
2        A     30
3        B     40
4        A     50
5        B     60

输出结果将会是:

COUNT:
6SUM:
210AVG:
35.0MIN:
10MAX:
60GROUP BY:value        sum mean min max
category                 
A           90  30.0  10  50
B          120  40.0  20  60DISTINCT:
['A' 'B']HAVING:category  value
0        A     10
2        A     30
4        A     50
1        B     20
3        B     40
5        B     60
http://www.lryc.cn/news/426228.html

相关文章:

  • 计算机毕业设计选题推荐-计算中心高性能集群共享平台-Java/Python项目实战
  • 仿RabbitMq实现简易消息队列基础篇(future操作实现异步线程池)
  • 经典算法题总结:数组常用技巧(双指针,二分查找和位运算)篇
  • 版本控制基础理论
  • 微分方程(Blanchard Differential Equations 4th)中文版Section1.4
  • 求职Leetcode算法题(7)
  • ActiveMQ、RabbitMQ、Kafka、RocketMQ在事务性消息、性能、高可用和容错、定时消息、负载均衡、刷盘策略的区别
  • HanLP分词的使用与注意事项
  • Python 的进程、线程、协程的区别和联系是什么?
  • 实时数据推送:Spring Boot 中两种 SSE 实战方案
  • 数据守护者:SQL一致性检查的艺术与实践
  • jenkins配置+vue打包多环境切换
  • idea和jdk的安装教程
  • HTML静态网页成品作业(HTML+CSS)——电影网首页网页设计制作(1个页面)
  • 大数据系列之:Flink Doris Connector,实时同步数据到Doris数据库
  • LabVIEW VI 多语言动态加载与运行的实现
  • Unity引擎基础知识
  • 练习题- 探索正则表达式对象和对象匹配
  • Java集合提升
  • uniapp 微信小程序生成水印图片
  • ElasticSearch相关知识点
  • css 文字图片居中及网格布局
  • 解决ImportError: DLL load failed while importing _rust: 找不到指定的程序
  • 集合-List去重
  • ST-LINK USB communication error 非常有效的解决方法
  • 探索CSS的:future-link伪类:选择指向未来文档的链接
  • 【C++】序列与关联容器(三)map与multimap容器
  • ActiveMQ、RabbitMQ、Kafka、RocketMQ在优先级队列、延迟队列、死信队列、重试队列、消费模式、广播模式的区别
  • 首款会员制区块链 Geist 介绍
  • CANoe软件中Trace窗口的筛选栏标题不显示(空白)的解决方法