Pandas merge合并两个DataFram的实现

目录
  • Pandas merge
  • 保留左边的DataFram

Pandas merge

pandas.merge()是pandas库中用于合并两个或多个DataFrame对象的函数,其常用的参数有以下几个:

  • left:要合并的左侧DataFrame。
  • right:要合并的右侧DataFrame。
  • how:指定合并方式,包括‘left’、‘right’、‘outer’和‘inner’四种。
  • on:指定按照哪些列进行合并,可以是单个列名或包含多个列名的列表。
  • left_on和right_on:指定左侧和右侧DataFrame中进行合并的列名,如果两个DataFrame中的列名不同,需要通过这两个参数指定。
  • suffixes:指定当两个DataFrame中有相同列名时,为区分而添加的后缀。

示例代码

import pandas as pd

# 创建两个DataFrame
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': [5, 6, 7, 8]})

# 通过key列合并两个DataFrame
merged = pd.merge(df1, df2, on='key')
print(merged)

运行结果:

key  value_x  value_y
0   B        2        5
1   D        4        6

在这个例子中,创建了两个DataFrame对象df1和df2,它们都有一个名为’key’的列。使用pd.merge()函数将这两个DataFrame对象按照’key’列进行合并,并将结果存储在merged变量中。最后,输出了合并后的结果,其中value_x和value_y分别代表合并前的df1和df2中的’value’列。

保留左边的DataFram

如果只想考虑左侧的DataFrame对象,在pandas.merge()函数中可以设置how=‘left’参数来实现。具体来说,how参数控制了两个DataFrame对象之间的合并方式,可以取值为’left’、‘right’、‘outer’和’inner’。当取值为’left’时,pandas.merge()函数会将左侧DataFrame对象中所有的行保留,并在合并后的DataFrame对象中添加右侧DataFrame对象中能够和左侧DataFrame对象匹配的行。

下面是一个示例代码:

import pandas as pd

# 创建两个DataFrame
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': [5, 6, 7, 8]})

# 只考虑左侧的DataFrame对象
merged = pd.merge(df1, df2, on='key', how='left')

print(merged)

运行结果:

key  value_x  value_y
0   A        1      NaN
1   B        2      5.0
2   C        3      NaN
3   D        4      6.0

在这个例子中,将df1和df2按照’key’列进行合并,并将合并方式设置为’left’。合并结果中包含了df1中所有的行,因为只考虑左侧的DataFrame对象。右侧的DataFrame对象中’key’列为’E’和’F’的行在合并后的DataFrame对象中的’value_y’列都是NaN。

到此这篇关于Pandas merge合并两个DataFram的实现的文章就介绍到这了,更多相关Pandas merge合并两个DataFram内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • pandas dataframe的合并实现(append, merge, concat)

    创建2个DataFrame: >>> df1 = pd.DataFrame(np.ones((4, 4))*1, columns=list('DCBA'), index=list('4321')) >>> df2 = pd.DataFrame(np.ones((4, 4))*2, columns=list('FEDC'), index=list('6543')) >>> df3 = pd.DataFrame(np.ones((4, 4))*3, col

  • pandas中DataFrame数据合并连接(merge、join、concat)

    pandas作者Wes McKinney 在[PYTHON FOR DATA ANALYSIS]中对pandas的方方面面都有了一个权威简明的入门级的介绍,但在实际使用过程中,我发现书中的内容还只是冰山一角.谈到pandas数据的行更新.表合并等操作,一般用到的方法有concat.join.merge.但这三种方法对于很多新手来说,都不太好分清使用的场合与用途.今天就pandas官网中关于数据合并和重述的章节做个使用方法的总结. 文中代码块主要有pandas官网教程提供. 1 concat co

  • Pandas 合并多个Dataframe(merge,concat)的方法

    在数据处理的时候,尤其在搞大数据竞赛的时候经常会遇到一个问题就是,多个表单的合并问题,比如一个表单有user_id和age这两个字段,另一个表单有user_id和sex这两个字段,要把这两个表合并成只有user_id.age.sex三个字段的表怎么办的,普通的拼接是做不到的,因为user_id每一行之间不是对应的,像拼积木似的横向拼接肯定是不行的. pandas中有个merge函数可以做到这个实用的功能,merge这个词会点SQL语言的应该都不陌生. 下面说说merge函数怎么用: df = p

  • 在Pandas中DataFrame数据合并,连接(concat,merge,join)的实例

    最近在工作中,遇到了数据合并.连接的问题,故整理如下,供需要者参考~ 一.concat:沿着一条轴,将多个对象堆叠到一起 concat方法相当于数据库中的全连接(union all),它不仅可以指定连接的方式(outer join或inner join)还可以指定按照某个轴进行连接.与数据库不同的是,它不会去重,但是可以使用drop_duplicates方法达到去重的效果. concat(objs, axis=0, join='outer', join_axes=None, ignore_ind

  • Pandas merge合并两个DataFram的实现

    目录 Pandas merge 保留左边的DataFram Pandas merge pandas.merge()是pandas库中用于合并两个或多个DataFrame对象的函数,其常用的参数有以下几个: left:要合并的左侧DataFrame. right:要合并的右侧DataFrame. how:指定合并方式,包括‘left’.‘right’.‘outer’和‘inner’四种. on:指定按照哪些列进行合并,可以是单个列名或包含多个列名的列表. left_on和right_on:指定左侧

  • Java实现合并两个有序序列算法示例

    本文实例讲述了Java实现合并两个有序序列算法.分享给大家供大家参考,具体如下: 问题描述 输入:序列A<a0,a1,a2,...aq,aq+1,aq+2,...,ar>,其中a0<a1<...<aq,aq+1<aq+2<...<ar 输出:序列B<b0,b1,...,br>,其中b0<b1<...<br 算法思想 创建一个长度为r的数组R,将A中的序列看作是两个有序序列 B=A<a0,a1,a2,...,aq> C

  • 用pandas按列合并两个文件的实例

    直接上图,图文并茂,相信你很快就知道要干什么. A文件: B文件: 可以发现,A文件中"汉字井号"这一列和B文件中"WELL"这一列的属性相同,以这一列为主键,把B文件中"TIME"这一列数据添加到A文件中,如果B文件缺少某些行,则空着,最后A文件的行数不变,效果如下: 代码如下: # -*- coding: utf-8 -*- """ Created on Wed Nov 29 16:02:05 2017 @aut

  • Python Pandas数据合并pd.merge用法详解

    目录 前言 语法 参数 1.连接键 2.索引连接 3.多连接键 4.连接方法 5.连接指示 总结 前言 实现类似SQL的join操作,通过pd.merge()方法可以自由灵活地操作各种逻辑的数据连接.合并等操作 可以将两个DataFrame或Series合并,最终返回一个合并后的DataFrame 语法 pd.merge(left, right, how = 'inner', on = None, left_on = None, right_on = None, left_index = Fal

  • 详解Python3 pandas.merge用法

    摘要 数据分析与建模的时候大部分时间在数据准备上,包括对数据的加载.清理.转换以及重塑.pandas提供了一组高级的.灵活的.高效的核心函数,能够轻松的将数据规整化.这节主要对pandas合并数据集的merge函数进行详解.(用过SQL或其他关系型数据库的可能会对这个方法比较熟悉.)码字不易,喜欢请点赞!!! 1.merge函数的参数一览表 2.创建两个DataFrame 3.pd.merge()方法设置连接字段. 默认参数how是inner内连接,并且会按照相同的字段key进行合并,即等价于o

  • Go来合并两个csv的实现示例

    背景 通常我们处理文件都是用python+pandas,确实很香.但是今天突然有人找我用go写一个合并两个csv文件的,需要将两个csv按id进行合并,大致如下图 思路很简单,先读入两个csv文件,然后遍历比较id,如果相同就把另一个文件的内容加到第一个中.然后创建merge.csv,将上一步得到的数据写入csv即可. 代码部分 package main import ( "encoding/csv" "log" "os" "fmt&q

  • 一文搞懂Python中Pandas数据合并

    目录 1.concat() 主要参数 示例 2.merge() 参数 示例 3.append() 参数 示例 4.join() 示例 数据合并是数据处理过程中的必经环节,pandas作为数据分析的利器,提供了四种常用的数据合并方式,让我们看看如何使用这些方法吧! 1.concat() concat() 可用于两个及多个 DataFrame 间行/列方向进行内联或外联拼接操作,默认对行(沿 y 轴)取并集. 使用方式 pd.concat( objs: Union[Iterable[~FrameOr

  • Python必备技巧之Pandas数据合并函数

    目录 1. concat 2. append 3. merge 4. join 5. combine 总结 1. concat concat是pandas中专门用于数据连接合并的函数,功能非常强大,支持纵向合并和横向合并,默认情况下是纵向合并,具体可以通过参数进行设置. pd.concat( objs: 'Iterable[NDFrame] | Mapping[Hashable, NDFrame]', axis=0, join='outer', ignore_index: 'bool' = Fa

  • Python Pandas中合并数据的5个函数使用详解

    目录 join 索引一致 索引不一致 merge concat 纵向拼接 横向拼接 append combine 前几天在一个群里面,看到一位朋友,说到自己的阿里面试,被问了一些关于pandas的使用.其中一个问题是:pandas中合并数据的5中方法. 今天借着这个机会,就为大家盘点一下pandas中合并数据的5个函数.但是对于每个函数,我这里不打算详细说明,具体用法大家可以参考pandas官当文档. join主要用于基于索引的横向合并拼接: merge主要用于基于指定列的横向合并拼接: con

  • Python数据分析之 Pandas Dataframe合并和去重操作

    目录 一.之 Pandas Dataframe合并 二.去重操作 一.之 Pandas Dataframe合并 在数据分析中,避免不了要从多个数据集中取数据,那就避免不了要进行数据的合并,这篇文章就来介绍一下 Dataframe 对象的合并操作. Pandas 提供了merge()方法来进行合并操作,使用语法如下: pd.merge(left, right, how="inner", on=None, left_on=None, right_on=None, left_index=Fa

随机推荐