Python利用pandas进行数据合并

当使用Python中的pandas库时,merge函数是用于合并(或连接)两个数据框(DataFrame)的重要工具。它类似于SQL中的JOIN操作,允许你根据一个或多个键(key)将两个数据框连接起来。

merge函数的基本语法如下:

复制代码
pd.merge(
    left,  # 要合并的左侧 DataFrame
    right,  # 要合并的右侧 DataFrame
    how='inner',  # 连接方式,包括 'left', 'right', 'outer', 'inner',默认为 'inner'
    on=None,  # 用于连接的列名,必须存在于左侧和右侧 DataFrame 中
    left_on=None,  # 左侧 DataFrame 用于连接的列名
    right_on=None,  # 右侧 DataFrame 用于连接的列名
    left_index=False,  # 如果为 True,则使用左侧 DataFrame 的索引作为连接键
    right_index=False,  # 如果为 True,则使用右侧 DataFrame 的索引作为连接键
    suffixes=('_x', '_y'),  # 字符串后缀,用于重叠列名的处理
    sort=False,  # 根据连接键对合并后的数据进行排序
    copy=True,  # 如果为 False,可以提高性能,但是在某些情况下会修改原始数据
)

基本用法

复制代码
merged_df = pd.merge(left_df, right_df, how='outer', on=['店铺名称'])   # 连接方式,包括 'left', 'right', 'outer', 'inner',默认为 'inner'
print(merged_df)

指定不同的列名

复制代码
merged_df = pd.merge(left_df, right_df, how='outer', left_on='店铺名称', right_on='店铺名称2')
print(merged_df)

处理重复列名,相同列名加后缀

复制代码
merged_df = pd.merge(left_df, right_df, how='outer', on=['店铺名称'], suffixes=('_left', '_right'))
print(merged_df)

根据索引进行合并

复制代码
merged_df = pd.merge(left_df, right_df, how='outer', left_index=True, right_index=True)
print(merged_df)

开启一列标记列,标记数据来源

复制代码
merged_df = pd.merge(left_df, right_df, how='outer', on=['店铺名称','订单号'], indicator=True)
print(merged_df)

完整代码

复制代码
import pandas as pd

# 读取两个 Excel 文件
left_df = pd.read_excel('C:\\Users\\liuchunlin2\\Desktop\\数据1.xlsx',sheet_name='Sheet2')
right_df = pd.read_excel('C:\\Users\\liuchunlin2\\Desktop\\数据2.xlsx',sheet_name='Sheet2')

#基本用法
merged_df = pd.merge(left_df, right_df, how='outer', on=['店铺名称'])   # 连接方式,包括 'left', 'right', 'outer', 'inner',默认为 'inner'
print(merged_df)

#指定不同的列名
merged_df = pd.merge(left_df, right_df, how='outer', left_on='店铺名称', right_on='店铺名称2')
print(merged_df)

#处理重复列名,相同列名加后缀
merged_df = pd.merge(left_df, right_df, how='outer', on=['店铺名称'], suffixes=('_left', '_right'))
print(merged_df)

#根据索引进行合并
merged_df = pd.merge(left_df, right_df, how='outer', left_index=True, right_index=True)
print(merged_df)

#开启一列标记列,标记数据来源
merged_df = pd.merge(left_df, right_df, how='outer', on=['店铺名称','订单号'], indicator=True)
print(merged_df)

数据一:

数据二:

相关推荐
weixin_156241575768 分钟前
基于YOLOv8深度学习花卉识别系统摄像头实时图片文件夹多图片等另有其他的识别系统可二开
大数据·人工智能·python·深度学习·yolo
AI_Claude_code13 分钟前
ZLibrary访问困境方案三:Web代理与轻量级转发服务的搭建与优化
爬虫·python·web安全·搜索引擎·网络安全·web3·httpx
小陈工15 分钟前
2026年4月7日技术资讯洞察:下一代数据库融合、AI基础设施竞赛与异步编程实战
开发语言·前端·数据库·人工智能·python
时空无限21 分钟前
ansible 由于不同主机 python 版本不同执行报错
python·ansible
ZhengEnCi25 分钟前
P2E-Python字典操作完全指南-从增删改查到遍历嵌套的Python编程利器
python
alanesnape26 分钟前
使用AVL平衡树和列表实现 map容器 -- 附加测试/python代码
python·map·avl 平衡树·bst树·二叉树旋转
卤炖阑尾炎1 小时前
Python 网络编程实战:从 TCP/UDP 基础到高并发服务器开发
网络·python·tcp/ip
weixin_513449961 小时前
walk_these_ways项目学习记录第八篇(通过行为多样性 (MoB) 实现地形泛化)--策略网络
开发语言·人工智能·python·学习
飞Link1 小时前
逆向兼容的桥梁:3to2 自动化降级工具实现全解析
运维·开发语言·python·自动化
曾阿伦1 小时前
Python3 文件 (夹) 操作备忘录
开发语言·python