python多表拼接

简介: 笔记

一、表的横向拼接


'''
多表的横向拼接:在横向将两个表依据公共列拼接在一起
'''
# 连接表的类型
# 1。一对一:就是两个表的公共列是一对一的
import pandas as pd
df1 = pd.read_excel('/Users/caizhengjie/Desktop/数据分析数据/多表拼接/数据1.xlsx')
df2 = pd.read_excel('/Users/caizhengjie/Desktop/数据分析数据/多表拼接/数据2.xlsx')
print(df1)
print(df2)
#如果将df1和df2表拼接在一起,直接用pd.merge()方法
print(pd.merge(df1,df2))
# 2。多对一:就是待连接的两个表的公共列不是一对一的,其中一个表的公共列有重复值,另一个表的公共列有唯一值
df3 = pd.read_excel('/Users/caizhengjie/Desktop/数据分析数据/多表拼接/数据3.xlsx')
df4 = pd.read_excel("/Users/caizhengjie/Desktop/数据分析数据/多表拼接/数据4.xlsx" )
print(df3)
print(df4)
print(pd.merge(df3, df4,on='学号'))
# 3。多对多:就是待连接的两个表的公共列不是一对一的,且两个表中的公共列都有重复值
df5 = pd.read_excel('/Users/caizhengjie/Desktop/数据分析数据/多表拼接/数据5.xlsx')
df6 = pd.read_excel('/Users/caizhengjie/Desktop/数据分析数据/多表拼接/数据6.xlsx')
print(df5)
print(df6)
print(pd.merge(df5,df6))
# 连接键的类型
# 1默认以公共列作为连接键:pd.merge()方法会默认寻找两个表中的公共列,然后以这个公共列作为连接键进行连接
print(pd.merge(df1,df2))
# 2用on来指定连接键:也可以用on来指定连接键,参数on一般指定的也是两个表中的公共键,公共列也可以有多个
print(pd.merge(df3, df4,on='学号'))
# 3分别指定左右连接键:当两个表中没有公共列时,这里指的是实际值一样,但列名不同,这个时候就要分别指明是左表和右表连接,使用的参数分别是left_on和right_on
df7 = pd.read_excel('/Users/caizhengjie/Desktop/数据分析数据/多表拼接/数据7.xlsx')
print(pd.merge(df7, df2,left_on='编号',right_on='学号'))
# 4把索引列当作连接键
DF1 = df7.set_index('编号')
DF2 = df2.set_index('学号')
print(pd.merge(DF1,DF2,left_index=True, right_index=True))
# 还可以把索引列和普通列混用
print(pd.merge(DF1,df2,left_index=True, right_on='学号'))
# 连接方式
# 1内连接:就是取两个表中的公共部分,如果不指定连接方式,则默认是内连接
df8 = pd.read_excel('/Users/caizhengjie/Desktop/数据分析数据/多表拼接/数据8.xlsx')
print(pd.merge(df1,df8,on='学号',how='inner'))
# 2左连接:就是以左表为基础,右表往左表上拼接。
print(pd.merge(df1,df8,on='学号',how='left'))
# 3右连接:就是以右表为基础,左表往右表上拼接
print(pd.merge(df1,df8,on='学号',how='right'))
# 4外连接:就是取两个表的交集
print(pd.merge(df1,df8,on='学号',how='outer'))
# 重复列名处理
# 两个表在进行连接时,经常会遇到列名重复的情况,当然我们可以自定义重复的列名,只需要修改参数suffixes的值即可,默认是['_x','_y']
print(df1)
print(df8)
print(pd.merge(df1,df8,on='学号',how='inner'))
# 给重复的列名加后缀_L_R
print(pd.merge(df1,df8,on='学号',how='inner',suffixes=['_L','_R']))


二、表的纵向拼接


'''
# 表的纵向拼接:是在垂直方向上进行拼接
# 在python中想纵向合并两个表,要用到concat()方法
'''
import pandas as pd
df1 = pd.read_excel('/Users/caizhengjie/Desktop/数据分析数据/多表拼接/数据9.xlsx')
df2 = pd.read_excel('/Users/caizhengjie/Desktop/数据分析数据/多表拼接/数据10.xlsx')
print(df1.set_index('编号'))
print(df2.set_index('编号'))
print(pd.concat([df1.set_index('编号'),df2.set_index('编号')]))
# 索引设置.pd.concat()方法默认保留原表的索引,我们可以通过设置参数ignore_index的值,让其等于true,这样就会产生成一组新的索引
print(pd.concat([df1.set_index('编号'),df2.set_index('编号')],ignore_index=True))
# 重叠数据合并
df3 = pd.read_excel('/Users/caizhengjie/Desktop/数据分析数据/多表拼接/数据11.xlsx')
print(pd.concat([df1,df3]))
print(pd.concat([df1.set_index('编号'),df2.set_index('编号')],ignore_index=True).drop_duplicates())


相关文章
|
5月前
|
索引 Python
如何使用Python的Pandas库进行数据合并和拼接?
Pandas的`merge()`函数用于数据合并,如示例所示,根据'key'列对两个DataFrame执行内连接。`concat()`函数用于数据拼接,沿轴0(行)拼接两个DataFrame,并忽略原索引。
88 2
|
5月前
|
索引 Python
如何使用Python的Pandas库进行数据合并和拼接?
【2月更文挑战第28天】【2月更文挑战第103篇】如何使用Python的Pandas库进行数据合并和拼接?
39 0
|
11月前
|
数据挖掘 Python
【Python】数据分析:numpy数组拼接和交换
【Python】数据分析:numpy数组拼接和交换
79 0
|
12月前
|
测试技术 Python
软件测试|Python字符串拼接详细解析
软件测试|Python字符串拼接详细解析
103 0
|
4月前
|
Python
Python使用ffmpeg下载m3u8拼接为视频
Python使用ffmpeg下载m3u8拼接为视频
192 1
|
14天前
|
Python
Python实现图片的拼接
Python实现图片的拼接
10 1
|
4月前
|
BI 测试技术 索引
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)-1
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)
|
2月前
|
Python
python字符串的拼接和拆分,看这一篇就够了
python字符串的拼接和拆分,看这一篇就够了
40 0
|
4月前
|
存储 API C语言
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)-2
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)
|
5月前
|
Python
Python语言中如何实现字符串拼接?
通过使用加号运算符,你可以将两个或多个字符串拼接成一个新的字符串。在这个示例中,`str1` 和 `str2` 字符串被拼接为 `"Hello, world!"`。这是Python中一种简单常用的字符串拼接方式。
52 1