一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Pandas多源数据整合-三大数据合并方法Merge Join与Concat全面解析

时间:2026-05-27 14:30:02 编辑:袖梨 来源:一聚教程网

在数据分析工作中,数据往往分散在多个表格中,掌握高效的数据整合技巧至关重要。本节将深入讲解Pandas中三种核心数据合并方法,帮助您轻松应对多表关联的各类场景。 本节学习目标 理解数据库连接的各种类型(inner、outer、left、right)掌握 merge 函数的全部核心参数学会使用 join 进行基于索引的关联掌握 concat 进行轴向合并能够处理多表关联和数据对齐问题 为什么学这个? 现实业务场景中的数据通常分布在多张关联表中。以典型电商系统为例: 用户表:记录用户基础信息订单表:存储交易明细数据产品表:维护商品信息 要回答"2024年购买电子产品最多的用户"这类业务问题,必须同时关联这三I张表。 Pandas提供了三种主要的数据合并方式: merge —— 基于列值的关联(类似SQL JOIN)join —— 基于索引的关联concat —— 按轴方向拼接 核心知识点讲解 merge:基于列值的关联 merge是最常用的数据关联方法,其功能与SQL中的JOIN操作高度相似。 1. 准备示例数据 import pandas as pd import numpy as np # 订单表 orders = pd.DataFrame({ '订单ID': [1001, 1002, 1003, 1004, 1005], '用户ID': [1, 2, 3, 1, 4], '金额': [500, 300, 800, 200, 1500], '日期': ['2024-01-15', '2024-02-20', '2024-03-10', '2024-04-05', '2024-05-18'] }) # 用户表 users = pd.DataFrame({ '用户ID': [1, 2, 3, 5], '姓名': ['张三', '李四', '王五', '赵六'], '城市': ['北京', '上海', '广州', '深圳'] }) # 产品表 products = pd.DataFrame({ '订单ID': [1001, 1002, 1003, 1004, 1005], '产品名': ['手机', '耳机', '电脑', '充电器', '手表'], '品类': ['电子产品', '配件', '电子产品', '配件', '饰品'] }) 2. 内连接(inner join) 仅保留两表完全匹配的行记录。 result = pd.merge(orders, users, on='用户ID', how='inner') 3. 左连接(left join) 保留左表全部记录,右表无匹配则填充NaN。 result = pd.merge(orders, users, on='用户ID', how='left') 4. 右连接(right join) 保留右表全部记录,左表无匹配则填充NaN。 result = pd.merge(orders, users, on='用户ID', how='right') 5. 外连接(outer join) 保留两表全部记录,无匹配处填充NaN。 result = pd.merge(orders, users, on='用户ID', how='outer') join:基于索引的关联 join是merge的特例化版本,专为基于索引的关联场景设计。 orders_idx = orders.set_index('用户ID') users_idx = users.set_index('用户ID') result = orders_idx.join(users_idx, lsuffix='_订单', rsuffix='_用户') concat:轴向拼接 concat支持灵活的数据拼接方式,包括纵向和横向两种主要形式。 1. 纵向拼接(axis=0) result = pd.concat([df1, df2]) 2. 横向拼接(axis=1) result = pd.concat([df_a, df_b], axis=1) 本节总结 通过本节学习,我们系统掌握了Pandas三大数据整合方法的核心要点和应用场景。数据合并是数据分析的基础技能,合理选择merge、join或concat方法,能够高效解决各类数据整合需求,为后续分析工作奠定坚实基础。

热门栏目