Pandas的疯狂融合之路

大数据 数据分析
merge和concat​的表连接,都有各自的特点,我们需要按自己所需要的结果去用,想匹配内容的,就用merge​,想全部连接到一起的,就用concat。

大家好,我是派森酱。

文章内容只是用部分代码来介绍功能的用法和最后的结果显示,不是真的用几个G的文件来展示,也展示不过来的。

熟悉了功能怎么用,就可以用自己的数据来操作了。

merge​可以匹配两表的内容,但是merge​只能连接两个表,不能多表连接,这次说说能用于多表连接的功能concat。

还是用上次的数据,这次多加了一个DataFrame,用于显示结果。

初始化数据

python
import pandas as pd

df1 = pd.DataFrame({
'姓名': ['张三', '李四', '王五', '刘六', '齐四'],
'号码': ['123', '456', '789', '987', '654']
})

df2 = pd.DataFrame({
'姓名': ['张三', '张三', '张三', '李四', '李四', '李四', '李四', '王五', '王五', '刘玉', '胡军', '刘玉', '刘六', '刘六', '刘六', '刘六', '刘克', '刘玉', '齐七', '齐七', '齐七', '齐七', '冯亮', '刘玉', '王云'],

'号码': ['123', '456', '789', '123', '123', '456', '456', '456', '456', '456', '741', '741', '741', '741', '741', '789', '789', '789', '789', '789', '852', '852', '852', '852', '852'],

'日期': ['2022-03-13', '2022-03-06', '2022-01-30', '2022-01-04', '2022-02-26', '2022-03-26', '2022-03-06', '2022-01-30', '2022-01-29', '2022-03-13', '2022-03-06', '2022-02-19', '2022-02-04', '2022-03-10', '2022-04-19', '2022-03-10', '2022-01-29', '2022-02-19', '2022-03-06', '2022-03-26', '2022-01-04', '2022-02-04', '2022-04-19', '2022-02-26', '2022-03-06'],

'方案': ['G1012', 'G1022', 'G1002', 'G1007', 'G1017', 'G1023', 'G1018', 'G1003', 'G1008', 'G1013', 'G1020', 'G1015', 'G1010', 'G1005', 'G1025', 'G1004', 'G1009', 'G1014', 'G1019', 'G1024', 'G1006', 'G1011', 'G1026', 'G1016', 'G1021']
})

df3 = pd.DataFrame({
'姓名': ['张三', '李四', '王五', '刘六', '齐四'],
'号码': ['123', '456', '789', '987', '654'],
'年龄': ['25', '36', '41', '12', '54']
})

用法

说明

concat​是一个轴向连接的功能,可以沿着一条轴将多个表对象堆叠到一起:how​的模式是outer

axis=0​是上下拼接,列重复的会自动合并,axis=1是左右拼接,行或索引重复的会自动合并

上下拼接

先连接两个表:

df = pd.concat([df1, df2], axis=0)

输出:

图片

两个表的重复列名自动合并了,缺失的值为NaN

连接三个表:

df = pd.concat([df1, df2, df3], axis=0)

输出:

图片

同时增加了另一个表的内容和增加了一列,缺失值同样为NaN

左右拼接

直接拼接三个表:

df = pd.concat([df1, df2, df3], axis=1)

输出:

图片

这次是在右边拼接的,行是按内容行最多的来算,其它的内容为空,列一直在增加,是把三个表的列都拼接上了。

总结

merge和concat​的表连接,都有各自的特点,我们需要按自己所需要的结果去用,想匹配内容的,就用merge​,想全部连接到一起的,就用concat。

责任编辑:武晓燕 来源: Python技术
相关推荐

2022-08-03 14:51:18

pandasPython

2022-06-28 10:13:09

Pandas错误Python

2022-06-06 08:51:56

PandasSQLPython

2022-04-25 08:43:47

pandas代码Python

2022-05-10 09:33:50

Pandas技巧代码

2020-08-14 10:57:49

开发技能代码

2022-05-24 12:50:58

Pandas索引代码

2019-10-31 10:16:06

数据Python开发

2019-11-20 10:54:32

Python数据结构数据库

2020-05-06 09:18:56

Pandas函数大数据技术

2020-06-05 14:29:07

PythonPandas数据分析

2020-10-29 08:35:06

Pandas函数Python

2020-01-03 08:34:18

pandas代码开发

2021-12-24 10:45:19

2020-09-15 09:45:23

Pandas代码Python

2019-08-16 09:55:22

Pandas编程语言代码

2021-02-26 14:05:32

PandasPython编程语言

2018-08-27 05:29:29

PandasPython数据集

2019-10-24 09:45:03

Pandas数据分析重构

2019-04-29 08:31:25

PythonPandas数据
点赞
收藏

51CTO技术栈公众号