四时宝库

程序员的知识宝库

pandas 库函数方法集合--merge_04left_right_outer_inner_join

20240115星期一:

# 使用how参数合并
# 通过how参数可以确定 DataFrame 中要包含哪些键,如果在左表、右表都不存的键,那么合并后该键对应的值为 NaN。为了便于大家学习,我们将 how 参数和与其等价的 SQL 语句做了总结:

# Merge方法  等效 SQL 描述
# left LEFT OUTER JOIN    使用左侧对象的key
# right    RIGHT OUTER JOIN   使用右侧对象的key
# outer    FULL OUTER JOIN    使用左右两侧所有key的并集
# inner    INNER JOIN 使用左右两侧key的交集

# 1) left join
import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4],
   'Name': ['Smith', 'Maiki', 'Hunter', 'Hilen'],
   'subject_id':['sub1','sub2','sub4','sub6']})
right = pd.DataFrame({
    'id':[1,2,3,4],
   'Name': ['Bill', 'Lucy', 'Jack', 'Mike'],
   'subject_id':['sub2','sub4','sub3','sub6']})
#以left侧的subject_id为键
print(pd.merge(left,right,on='subject_id',how="left"))
'''
   id_x  Name_x subject_id  id_y Name_y
0     1   Smith       sub1   NaN    NaN
1     2   Maiki       sub2   1.0   Bill
2     3  Hunter       sub4   2.0   Lucy
3     4   Hilen       sub6   4.0   Mike
'''

# 2) right join
import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4],
   'Name': ['Smith', 'Maiki', 'Hunter', 'Hilen'],
   'subject_id':['sub1','sub2','sub4','sub6']})
right = pd.DataFrame({
    'id':[1,2,3,4],
   'Name': ['Bill', 'Lucy', 'Jack', 'Mike'],
   'subject_id':['sub2','sub4','sub3','sub6']})
#以right侧的subject_id为键
print(pd.merge(left,right,on='subject_id',how="right"))
'''
   id_x  Name_x subject_id  id_y Name_y
0   2.0   Maiki       sub2     1   Bill
1   3.0  Hunter       sub4     2   Lucy
2   4.0   Hilen       sub6     4   Mike
3   NaN     NaN       sub3     3   Jack
'''

# 3) outer join(并集)
import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4],
   'Name': ['Smith', 'Maiki', 'Hunter', 'Hilen'],
   'subject_id':['sub1','sub2','sub4','sub6']})
right = pd.DataFrame({
    'id':[1,2,3,4],
   'Name': ['Bill', 'Lucy', 'Jack', 'Mike'],
   'subject_id':['sub2','sub4','sub3','sub6']})
#求出两个subject_id的并集,并作为键
print(pd.merge(left,right,on='subject_id',how="outer"))
'''
   id_x  Name_x subject_id  id_y Name_y
0   1.0   Smith       sub1   NaN    NaN
1   2.0   Maiki       sub2   1.0   Bill
2   3.0  Hunter       sub4   2.0   Lucy
3   4.0   Hilen       sub6   4.0   Mike
4   NaN     NaN       sub3   3.0   Jack
'''

# 4) inner join(交集)
import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4],
   'Name': ['Smith', 'Maiki', 'Hunter', 'Hilen'],
   'subject_id':['sub1','sub2','sub4','sub6']})
right = pd.DataFrame({
    'id':[1,2,3,4],
   'Name': ['Bill', 'Lucy', 'Jack', 'Mike'],
   'subject_id':['sub2','sub4','sub3','sub6']})
#求出两个subject_id的交集,并将结果作为键
print(pd.merge(left,right,on='subject_id',how="inner"))
'''
   id_x  Name_x subject_id  id_y Name_y
0     2   Maiki       sub2     1   Bill
1     3  Hunter       sub4     2   Lucy
2     4   Hilen       sub6     4   Mike
'''

SQL表连接基础-表与表之间的连接查询

已知表结构与测试数据如下

一、 表与表之间的内连接

以上查询的是两个表中的所有列,下面演示查询部分列:

针对以案例大家可以看到,我们没写一个列名都要用到表名去点,当表名很长的时候,我们可不可以给其起一个别名来使用呢?请看下面的案例:

备注:as是可以省略的

SQL语言基础语法特点(sql基本语言)

1、SQL的概述

  • SQL全称: Structured Query Language,是结构化查询语言,用于访问和处理数据库的标准的计算机语言。 SQL语言1974年由Boyce和Chamberlin提出,并首先在IBM公司研制的关系数据库系统SystemR上实现。

选读SQL经典实例笔记02_多表查询(sql多表查询语句大全讲解)

1. 除非有必要,否则不要用UNION代替UNION ALL

2. 查找两个表中相同的行

20pandas.merge: 合并数据(pandas 合并表)

pd.merge( )

Definition : 
merge(left: 'DataFrame | Series', right: 'DataFrame | Series', 
how: 'str'='inner', 
on: 'IndexLabel | None'=None, 
left_on: 'IndexLabel | None'=None, 
right_on: 'IndexLabel | None'=None, 
left_index: 'bool'=False, 
right_index: 'bool'=False, 
sort: 'bool'=False, 
suffixes: 'Suffixes'=('_x', '_y'), 
copy: 'bool'=True, 
indicator: 'bool'=False, 
validate: 'str | None'=None) -> 'DataFrame'

Oracle中,连接查询(Join)和子查询

Oracle中,连接查询(Join)和子查询(Subquery)都是用于组合来自不同表或查询结果的数据的常用技术。但是,它们在使用场景、性能和效率方面存在一些差异。

连接查询

连接查询通过在两个或多个表之间建立关系来组合来自不同表的数据。常用的连接查询类型包括:

基础小白的SQL的JOIN语法解析(sql的join语句)

总的来说,四种JOIN的使用/区别可以描述为:

left join 会从左表(shop)那里返回所有的记录,即使在右表(sale_detail)中没有匹配的行。

right outer join 右连接,返回右表中的所有记录,即使在左表中没有记录与它匹配

full outer join 全连接,返回左右表中的所有记录

MySQL实战:Join的使用技巧和优化(mysql join实现原理)

join用于多表中字段之间的联系,在数据库的DML (数据操作语言,即各种增删改查操作)中有着重要的作用。

合理使用Join语句优化SQL有利于:

  1. 增加数据库的处理效率,减少响应时间;
  2. 减少数据库服务器负载,增加服务器稳定性;

sql语句的执行顺序以及流程(详细掌握)

程序员对sql语句的执行顺序的透彻掌握,是避免编程中各种bug和错误,歧义语句的不二法则。


  1. SELECT DISTINCT <select_list>
  2. FROM <left_table>
  3. <join_type> JOIN <right_table>

读SQL进阶教程笔记06_外连接(外连接sql语句)

1. SQL的弱点

1.1. SQL语句的执行结果转换为想要的格式

  • 1.1.1. 格式转换
  • 1.1.2. SQL语言本来就不是为了这个目的而出现的
<< < 1 2 3 4 5 > >>
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接