pandas中DataFrame数据合并、连接

这篇具有很好参考价值的文章主要介绍了pandas中DataFrame数据合并、连接。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

为解决数据冗余等问题,大量的数据会分开存放在不同的文件(表格)里。在数据处理时,经常会有不同表格的数据需要进行合并操作。可以通过pandas库的merge函数concat函数来实现数据集的合并。

1、DataFrame数据合并—merge()

1.1 简介:连接行,列数增加

根据一个或多个键将不同DataFrame中的连接起来。

说明:类似于关系数据库的连接(join)操作、excel的vlookup

应用场景:

  • 针对同一个主键存在两张包含不同字段的表,现在想把他们整合到一张表里。

  • 在此典型情况下,结果集的行数并没有增加,列数则为两个元数据的列数和减去连接键的数量

例:

原有的两个DataFrame,分别为:df1;df2

dataframe合并,pandas学习笔记,pandas,数据分析,python,Powered by 金山文档

合并后:按指定的键连接,列数增加,去掉了多余的键

dataframe合并,pandas学习笔记,pandas,数据分析,python,Powered by 金山文档

1.2 格式

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

1.3 按指定的键连接

dataframe合并,pandas学习笔记,pandas,数据分析,python,Powered by 金山文档

1.4 按索引连接

dataframe合并,pandas学习笔记,pandas,数据分析,python,Powered by 金山文档

1.5 按多个键连接

dataframe合并,pandas学习笔记,pandas,数据分析,python,Powered by 金山文档

结果:

dataframe合并,pandas学习笔记,pandas,数据分析,python,Powered by 金山文档

1.6 参数说明

  • on=None 用于指定用于连接的列名(键名),如果该列在两个对象上的列名不同,则可以通过 left_on=None, right_on=None分别指定

例:

dataframe合并,pandas学习笔记,pandas,数据分析,python,Powered by 金山文档
dataframe合并,pandas学习笔记,pandas,数据分析,python,Powered by 金山文档
  • 或者想直接使用行索引作为连接键的话,就left_index=False, right_index=False 设为 True

例:

dataframe合并,pandas学习笔记,pandas,数据分析,python,Powered by 金山文档
dataframe合并,pandas学习笔记,pandas,数据分析,python,Powered by 金山文档
  • how='inner' 参数指的是当左右两个对象中存在不重合的键时,取结果的方式:inner 代表交集;outer 代表并集;left 和 right 分别为取一边。

例:

dataframe合并,pandas学习笔记,pandas,数据分析,python,Powered by 金山文档

inner和outer分别取交集和并集

dataframe合并,pandas学习笔记,pandas,数据分析,python,Powered by 金山文档

left和right分别以一边为参考合并

dataframe合并,pandas学习笔记,pandas,数据分析,python,Powered by 金山文档
  • suffixes=(‘_x’,‘_y’) 指的是当左右对象中存在除连接键外相同列名时,结果集中的区分方式,可各加一个小尾巴。

dataframe合并,pandas学习笔记,pandas,数据分析,python,Powered by 金山文档

注:对于多对多连接,结果采用的是行的笛卡尔积

2、DataFrame数据连接—concat()

2.1 简介:连接列,行数增加

  • 可以沿着一条轴将多个对象堆叠到一起concat函数相当于数据库中的全连接(UNION ALL)

  • 可以指定按某个轴进行连接,也可以指定连接的方式join(outer,inner 只有这两种)

  • 与数据库不同的是concat不会去重,要达到去重的效果可以使用drop_duplicates方法

2.2 格式

pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,keys=None, levels=None, names=None, verify_integrity=False,copy=True)

2.3 参数说明

  • 轴向连接 pd.concat() 就是单纯地把两个表拼在一起,这个过程也被称作连接(concatenation)、绑定(binding)或堆叠(stacking)。

  • 因此可以想见,这个函数的关键参数应该是 axis,用于指定连接的轴向

dataframe合并,pandas学习笔记,pandas,数据分析,python,Powered by 金山文档
  • 在默认的 axis=0 情况下:

pd.concat([obj1,obj2]) 函数的效果与obj1.append(obj2) 是相同的,即obj1行与obj2行的叠加

  • axis=1 的情况下:

pd.concat([df1,df2],axis=1)pd.merge(df1,df2,left_index=True,right_index=True,how='outer')的效果是相同的,即两个DataFrame数据的按照索引进行列的链接文章来源地址https://www.toymoban.com/news/detail-612946.html

dataframe合并,pandas学习笔记,pandas,数据分析,python,Powered by 金山文档

到了这里,关于pandas中DataFrame数据合并、连接的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Pandas DataFrame如何添加一行数据?

    在Pandas DataFrame中,我们经常需要添加新的行数据。这里介绍几种向DataFrame中添加一行数据的方法。 1. 使用.loc索引器 .loc索引器可以在DataFrame的尾部添加一条新行数据,语法如下: 例如: 2. 使用.append()方法 .append()方法可以向DataFrame尾部追加一行数据,语法如下: 例如: 3. 使用insert方

    2024年02月12日
    浏览(32)
  • python中Pandas之DataFrame索引、选取数据

    总结一下 DataFrame 索引问题 先创建一个简单的 DataFrame 。 DataFrame 中有两种索引: 行索引( index ):对应最左边那一竖列 列索引( columns ):对应最上面那一横行 两种索引默认均为从 0 开始的自增整数。 可以使用 index 这个参数指定行索引, columns 这个参数指定列索引。 输出此时

    2023年04月08日
    浏览(37)
  • 【数据分析 - 基础入门之pandas篇③】- pandas数据结构——DataFrame

    大家好!我是一朵向阳花(花花花)🍭,本期跟大家分享的知识是 pandas 数据结构——DataFrame。 作者的【 Python 数据分析】专栏正在火热更新中🔥,如果本文对您有帮助,欢迎大家点赞 + 评论 + 收藏 ! 每日金句分享: 慢慢来,谁还没有一个努力的过程。』—— pony「网易云

    2024年02月16日
    浏览(32)
  • pandas DataFrame内存优化技巧:让数据处理更高效

    Pandas 无疑是我们数据分析时一个不可或缺的工具,它以其强大的数据处理能力、灵活的数据结构以及易于上手的API赢得了广大数据分析师和机器学习工程师的喜爱。 然而,随着数据量的不断增长,如何高效、合理地管理内存,确保 Pandas DataFrame 在运行时不会因内存不足而崩

    2024年03月14日
    浏览(40)
  • 【Python】【pandas】打印 DataFrame 的每一列数据类型。

    可以使用 dtypes 属性来打印 DataFrame 的每一列数据类型。 dtypes 属性返回一个 Series,其中包含每个列的名称和对应的数据类型。 以下是打印 DataFrame 每一列数据类型的示例代码: 这将输出一个包含列名和数据类型的 Series。每一行都代表 DataFrame 的一列,列名作为索引,数据类

    2024年02月14日
    浏览(34)
  • Pandas 数据分析系列1--Series&DataFrame数据结构详解

       P andas 是一个开源的数据分析和数据处理库,是基于 NumPy 开发的。它提供了灵活且高效的数据结构,使得处理和分析结构化、缺失和时间序列数据变得更加容易。其在数据分析和数据处理领域广泛应用,在金融、社交媒体、科学研究等领域都有很高的使用率和广泛的应用

    2024年02月08日
    浏览(30)
  • python学习——pandas库的使用之series及DataFrame创建、查看、切片、运算

    Pandas是基于NumPy的数据分析模块 Pandas纳入了大量库和一些标准的数据模型,提供了高效操作大型数据集所需的工具 Pandas提供了大量能使我们快速便捷处理数据的函数和方法 Pandas的数据结构 Series :带标签的一维数组,与Numpy中的一维array类似。与列表也很相近。 区别是:列表

    2024年02月03日
    浏览(42)
  • 【python】pandas-DataFrame类型数据重命名列表头

    目录 0.环境 1.将DataFrame类型数据某一列重命名 windows + jupyter notebook + python  使用场景: 在处理数据对齐的问题时,两个表格的对齐列名不相同(一个数据集是DataFrame类型,一个数据集是geopandas类型),所以想修改一下DataFrame类型数据的某一列名字,特此记录分享 1)重命名前

    2024年02月14日
    浏览(35)
  • Pandas.DataFrame.loc[ ] 筛选数据-标签法 详解 含代码 含测试数据集 随Pandas版本持续更新

    关于Pandas版本: 本文基于 pandas2.2.0 编写。 关于本文内容更新: 随着pandas的stable版本更迭,本文持续更新,不断完善补充。 传送门: Pandas API参考目录 传送门: Pandas 版本更新及新特性 传送门: Pandas 由浅入深系列教程 Pandas.DataFrame.loc[] 方法用于通过 索引、列名 筛选 DataF

    2024年01月19日
    浏览(27)
  • Python 之 Pandas DataFrame 数据类型的简介、创建的列操作

    DataFrame 是 Pandas 的重要数据结构之一,也是在使用 Pandas 进行数据分析过程中最常用的结构之一,可以这么说,掌握了 DataFrame 的用法,你就拥有了学习数据分析的基本能力。 DataFrame 是一个表格型的数据结构,既有行标签(index),又有列标签(columns),它也被称异构数据表

    2024年02月06日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包