返回顶部
首页 > 资讯 > 后端开发 > Python >SQL和Python的集合操作对比
  • 449
分享到

SQL和Python的集合操作对比

2024-04-02 19:04:59 449人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容主要讲解“sql和python的集合操作对比”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL和Python的集合操作对比”吧!集合操作分析式问题通常

本篇内容主要讲解“sqlpython集合操作对比”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL和Python的集合操作对比”吧!

集合操作

分析式问题通常需要检查多个不同的数据集。在解答过程中,通过比较或组合不同的数据集来创建一组新数据集,非常有效。

例如,你可能有两个单独的表,其中包含要转换为单个事务表的事务性数据,你想把它们合并为一个表,或者创建一个同时包含两个表中数据的新事务表。

在SQL中,集合操作符可以解决这个问题。集合操作符支持对比性操作,可以有条件地连结两个SQL语句的结果集。SQL集合操作符包括:

  • UNION:从待比较的两个查询语句返回结果行。在默认情况下,如果两个SQL语句的结果集中存在相同的行,则UNioN不会返回重复行。如果你想返回重复行,可以向集合操作符UNION提供可选ALL关键字。

  • INTERSECT:返回位于两个待比较的查询语句结果集中的行。

  • EXCEPT(或者MINUS):返回到非待比较的查询语句结果集中的行。

虽然Python中没有特定的集合操作符种类,但Python中仍然有各种各样的函数可以实现这些功能。

为了说明如何在实践中使用这些集合操作,先假设你作为一名双边市场数据科学家。在你的市场中有买家和卖家,二者并不相互排斥。现在,买卖双方分别存在于buyers和sellers表格的数据库中。让我们来浏览一下集合操作可能发挥作用的几种场景。

合并和合并所有

假设你想把存在于buyers和sellers表格中的所有用户合并到一个新的单独的“用户”表格中。

在SQL中,你可以使用UNION操作符和可选ALL关键字来实现:

-- SQLselect user_id  from modeanalytics.buyers  union all  select user_id  from modeanalytics.sellers

在Python中,可以使用pandas .concat()函数复制上面执行的UNION ALL集合操作。

pandas  .concat()方法沿着选定的轴连接pandas对象(例如Dataframes,Series等)。假设您已将buyers和sellers数据库表格中user_id字段存储在两个pandas数据框对象中(buyers  和 sellers),你可以使用以下Python代码复制上面执行过的UNION ALL集合操作:

# Python users = pd.concat([buyers, sellers])

需要注意的是,在SQL中使用UNION和ALL关键字,或者在Python中使用pandas  concat()方法,你将把存在于两个表格中的用户(用户即是买家又是卖家)返回到重复行。但是,如果你只想返回存在于两个表中的一个用户的单一实例时:

在SQL中,从UNION集合操作符中移除ALL关键字:

-- SQLselect user_id  from modeanalytics.buyers  union  select user_id  from modeanalytics.sellers

在Python中,将.drop_duplicates()方法链接在连接pandas对象上:

# Python users = pd.concat([buyers, sellers]).drop_duplicates()

交集

反之,如果你想创建一个既是买家又是卖家的独立用户表格呢?

在SQL中,你可以使用INTERSECT集合操作符:

-- SQLselect user_id  from modeanalytics.buyers  intersect  select user_id  from modeanalytics.sellers

在Python中,你可以在数据框中使用pandas .merge()方法:

Python buyers_and_sellers = buyers.merge(sellers)

默认情况下,pandas  .merge()方法将尝试将两个数据框中的所有列进行“内部”合并。此默认操作基本复制了SQL集合操作符INTERSECT的步骤。

差集

现在,如果你想返回到所有买家用户,而不是卖家用户。

在SQL中,你可以使用EXCEPT集合操作:

-- SQL select user_id from modeanalytics.buyers except select user_id from modeanalytics.sellers

值得注意的是,SQL的EXCEPT集合操作符只能返回到***个表格,不能返回到第二个表格。如果你想要返回到卖方的表格中,你需要颠倒SELECT语句的顺序:

-- SQL select user_id from modeanalytics.sellers except select user_id from modeanalytics.buyers

在Python中,利用pandas布尔索引技术和pandas .isin() 索引来复制SQL EXCEPT集合操作符的功能:

# Python  buyers_not_sellers = buyers[buyers.user_id.isin(sellers.user_id) == False]  sellers_not_buyers = sellers[sellers.user_id.isin(buyers.user_id) == False]`

模糊界限

到这里,你已经了解了如何在Python中复制大量SQL集合操作符的功能。最终,编程模式的选择取决于你,甚至可以在项目基础上逐个改动。只有通过掌握分析语言功能上的重叠,才能有效做出决策。这就是使用多种数据分析语言的好处:你可以自定义一个混合方法来满足你不断发展的需求。

到此,相信大家对“SQL和Python的集合操作对比”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: SQL和Python的集合操作对比

本文链接: https://lsjlt.com/news/60902.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SQL和Python的集合操作对比
    本篇内容主要讲解“SQL和Python的集合操作对比”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL和Python的集合操作对比”吧!集合操作分析式问题通常...
    99+
    2024-04-02
  • SQL-集合操作
    union all 全集 union 并集(去重) intersect 交集 minus 差集 ...
    99+
    2019-12-20
    SQL-集合操作
  • Python列表和集合的效率对比
    程序运行效率程序的运行效率分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。时间复杂度主要衡量的是一个程序的运行速度,而空间复杂度主要衡量一个程序所需要的额外存储空间。一个程序执行所耗费的时...
    99+
    2023-05-14
    列表 Python 集合
  • SQL返回Map集合或者对象的操作
    需求: 在下面的sql中我们需要返回一个sum函数和一个count函数,因为两个返回的值都不是表中的字段,所以这里需要考虑的是我的sql返回值类型应该是什么? 在日常的开发中,遇到...
    99+
    2024-04-02
  • java与scala数组及集合的基本操作对比
    目录java与scala数组及集合的操作scala数组基本操作对应java代码scala可变数组ArrayBufferjava 相应 ArrayList操作scala 的数组遍历ja...
    99+
    2024-04-02
  • Python集合set的交集和并集操作方法
    目录一、交集操作1.使用intersection()求交集2. 使用位运算&符求交集3.intersection_update()方法4.使用intersection()方法...
    99+
    2024-04-02
  • Python中的SET集合操作
     python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric dif...
    99+
    2023-01-31
    操作 Python SET
  • Python集合的基础操作
    目录1、集合2、创建集合3、集合的运算3.1成员运算3.2交并差运算3.3比较运算4、集合的方法5、不可变集合1、集合 Python中的集合和数学上的集合基本是没有区别的,是无序的,...
    99+
    2024-04-02
  • python中字典和集合的常用操作
    本篇内容主要讲解“python中字典和集合的常用操作”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python中字典和集合的常用操作”吧!#字典:存多个值,key-value存取,取值速度快,k...
    99+
    2023-06-02
  • python如何操作集合
    这篇文章给大家分享的是有关python如何操作集合的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。操作集合>>> A = {1,&n...
    99+
    2024-04-02
  • SQL、Pandas和Spark常用数据查询操作对比
    本篇内容介绍了“SQL、Pandas和Spark常用数据查询操作对比”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学...
    99+
    2024-04-02
  • jQuery对表单的操作代码集合
    改变文本框的获得焦点的样式 复制代码 代码如下: <form action="#" method="POST" id="regForm"> <fieldset>...
    99+
    2022-11-21
    表单操作
  • Python列表和集合效率源码对比分析
    这篇“Python列表和集合效率源码对比分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python列表和集合效率源码对比...
    99+
    2023-07-06
  • Python 对Excel求和、合并居中的操作
    需求 原始表格: 想在Total列中对每日的Amount进行汇总,然后对Date和Total进行合并居中,效果如下: 思路 遍历Excel行,从第一个非空Date列开始,到下个非...
    99+
    2024-04-02
  • Java 集合操作之交集、并集和差集
    在 Java 编程中,经常需要对集合进行一些操作,比如取两个集合的交集、并集和差集。本文将介绍如何使用 Java 集合框架中的方法来实现这些集合操作,并通过源码解析来深入了解其实现原理。 先上代码...
    99+
    2023-09-01
    java 开发语言
  • Python集合的增删改查操作
    目录1.集合新增集合元素2.删除可变集合元素3.修改可变集合4.集合元素查询方法前言: 集合分为可变集合和不可变集合两种,所以对其的增删改查操作要看集合的类型来决定。不可变的数据当然...
    99+
    2024-04-02
  • php操作mysql防止sql注入(合集)
    本文将从sql注入风险说起,并且比较addslashes、mysql_escape_string、mysql_real_escape_string、mysqli和pdo的预处理的区别。 当一个变量从表单传入到php,需要查询mysql的话...
    99+
    2016-11-26
    php操作mysql防止sql注入(合集)
  • Python 元组和集合的特点及常用操作
    一、元组的特点:1、有序的集合2、通过偏移来取数据3、属于不可变的对象,不能在原地修改内容,没有排序,修改等操作。tuple支持的方法很少>>> dir(tuple) ['__add__', '__class__', '_...
    99+
    2023-01-31
    常用 操作 Python
  • python 文件内容对比操作
    #-*-coding:utf-8-*- import re f1 = open('d:/test/mail/bounce_list.txt','r') f2 = open('d:/test/mail/828-...
    99+
    2023-01-31
    操作 文件 内容
  • python如何操作多重集合
    这篇文章给大家分享的是有关python如何操作多重集合的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 操作多重集合>>> A =&...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作