python:merge的用法

目录

1.merge基本语法

2.参数说明

3.示例


在Python的Pandas库中,merge 函数是一种常用的工具,用于根据一个或多个键将两个或多个DataFrame对象合并在一起。 以下是**merge**函数的基本用法和参数解释:

1.merge基本语法

python 复制代码
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,
         left_index=False, right_index=False, sort=False,
         suffixes=('_x', '_y'), copy=True, indicator=False, validate=None)

2.参数说明

  • left: 左侧的DataFrame对象。
  • right: 右侧的DataFrame对象。
  • how : 指定合并方式,可选值有:
    • 'inner'(默认):内连接,只包含两个DataFrame中键相匹配的行。
    • 'left':左连接,包含左侧DataFrame的所有行,右侧无匹配时填充NaN。
    • 'right':右连接,包含右侧DataFrame的所有行,左侧无匹配时填充NaN。
    • 'outer':外连接,包含两个DataFrame的所有行,无匹配时填充NaN。
  • on: 指定用于连接的列名(或列名列表),左右DataFrame中需有相同列名。
  • left_on / right_on: 分别指定左侧和右侧DataFrame中用于连接的列名。
  • left_index / right_index : 是否使用左侧或右侧的索引作为连接键,默认为**False**。
  • sort : 是否对结果进行排序,默认为**False**。
  • suffixes: 当左右DataFrame中有重名列但未被用作连接键时,为这些列添加的后缀。
  • copy : 是否复制数据,默认为**True**。
  • indicator : 是否添加一列 _merge 来标记行的来源,默认为**False** 。可选值有'left_only', 'right_only', 'both'
  • validate : 验证合并操作是否合法,比如可以设置为'one_to_one''one_to_many'等。

3.示例

假设我们有两个DataFrame,df1df2,分别代表不同的数据集,且它们有一个或多个共有的列可以作为连接键。

python 复制代码
import pandas as pd

# 示例数据
data1 = {'key': ['A', 'B', 'C', 'D'], 'value1': [1, 2, 3, 4]}
data2 = {'key': ['B', 'D', 'E', 'F'], 'value2': [5, 6, 7, 8]}

df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

# 使用inner join合并
merged_inner = pd.merge(df1, df2, on='key')

# 使用left join合并
merged_left = pd.merge(df1, df2, on='key', how='left')

# 使用right join合并
merged_right = pd.merge(df1, df2, on='key', how='right')

# 使用outer join合并
merged_outer = pd.merge(df1, df2, on='key', how='outer')
相关推荐
jerryinwuhan37 分钟前
Python快速入门(纯净版)
python
liferecords37 分钟前
第 12 讲 · Python 侧接入:火焰图定位热点与间接使用硬件加速
python·性能分析·鲲鹏·火焰图·ctypes
hhzz37 分钟前
【OpenCV 入门到精通 11】机器学习应用:KNN、SVM 与 K-Means 实战
人工智能·python·深度学习·opencv
传奇开心果编程1 小时前
【Rust入门练中学】 第1课:从零开始
开发语言·学习·rust
K 旺仔小馒头1 小时前
【项目】商城系统用户端测试报告
自动化测试·python·功能测试
东莞市云毅网络有限公司1 小时前
用 SQLite FTS5 给企业文档建本地全文索引:中文分词与权重调优
python·数据清洗·rag·企业知识库·文档解析
钱栈up1 小时前
health从200变000:一次差点引发双端口冲突的后端巡检复盘
python
正经教主1 小时前
【FDE系列】阶段2:Day 22:变量、数据类型、条件判断 — Python 的“记忆“和“判断“
人工智能·python·fde
Brilliantwxx1 小时前
【STM32】 SPI阻塞式通信与HAL源码(串口读ID实战)
开发语言·stm32·单片机·嵌入式硬件·ecmascript
打工仔折腾 AI2 小时前
Pascal Editor 本地部署实战:Bun 启动 WebGPU 3D 编辑器并解决公网访问报错
人工智能·后端·python·性能优化