pandas中数据合并的常用方法,pandas合并数据表
本文主要介绍pandas实现数据合并的示例代码。文中详细介绍了示例代码,对大家的学习或工作有一定的参考价值。有需要的朋友下面和边肖一起学习。
00-1010 I concat -数据合并概述1.1 1.2指定合并轴的方向- axis1.3指定合并轴的另一个轴标签是否合并- join1.4指定合并轴的原标签是否需要更改- ignore_index1.5指定合并轴的索引方心香,便于区分数据-key 1.6指定合并轴的索引的含义名称方,一般与key一起使用。让合并后的数据更直观-名称1.7指定合并时合并轴上是否允许重复标签- verify_integrity二、合并-数据连接2.1概述2.2指定表连接的键值列- on参数2.3指定数据连接方式-参数2.4如何将行索引设置为连接键- left_index和right_index参数2.5设置相同列时自动设置后缀- suffixes III、 Join3.1概述3.2行索引Join-无重复列标签3.3行索引Join-重复列标签3.4列标签链接-列标签不同,但内容相同3.5列标签链接-列标签相同,内容相同3.6列标签链接-列标签和列内容不同3.7 join和merge的异同4 . 追加5。assign在pandas基本操作的数据读取和清洗分析中介绍了pandas常用的数据处理操作。现在,我们将继续介绍熊猫常见的数据合并操作,让您快速了解,然后在需要时快速查询。
目录
一、 concat--数据合并
# panda的concat函数表达式如下
pd.concat(
[df1,df2,df3],#指定两个或多个要合并的数据帧,每个df的形状可以不同。
Axis=0,#指定合并时合并的轴方向。默认值为0,即行合并,将多个DFs垂直拼接合并。
Join=outer ,#指定如何在合并轴的另一个轴方向上合并标签,outer指并集,inner指交集。
Ignore_index=False,#指定是否在合并轴的方向上保留原始DFs的原始标签。默认值为False,即保留它们。
Keys=[a , b , c],#是合并后的数据。在合并轴的方向指定一个新的索引,便于区分合并的数据源。
Names=[groupA , groupB],# is
Verify_integrity=False,#指定在指定的合并轴方向上是否允许重复标签。默认值为False,表示是。当它被指定为True时,如果有重复项,在合并期间将会报告一个错误。
)
1.1 概述
#一般将多个数据帧在行方向连接合并,形成一个新的数据帧,便于统一处理。
#常见的应用场景,比如多个DataFrame可能有一些相同的列,所以我们希望把它们连接在一起,分析它们的规律。
#df1数据来源如下:
公元前
0 0.214326 0.818321 -0.055211
1 -0.941666 2.396083 2.173411
#df2数据来源如下:
有
0 0.397919 -0.350948
1 0.147547 -0.172974
Pd.concat([df1,df2],axis=0) #运算结果如下
有
C
0 -0.663727 1.883112 -0.409361
1 0.874930 -0.120000 0.015474
0 0.380397 -1.088665 NaN
1 -1.623468 0.610855 NaN
pd.concat([df1 , df2], axis=1) #运算结果如下
A B C A B
0 -0.663727 1.883112 -0.409361 0.380397 -1.088665
1 0.874930 -0.120000 0.015474 -1.623468 0.610855
1.3 指定合并轴另外一个轴标签是否合并--join
#一般直接使用join的默认值,即outer,取并集,此时不会丢弃多个DataFrame的任何列信息
1.4 指定合并轴原标签是否需要变化--ignore_index
#该参数在希望对行进行遍历处理时,会比较有用,因为可以设置忽略合并轴方向之前的index或标签,重新进行生成,就像是一个全新的DataFrame一样
1.5 指定合并轴方向新的index,便于区分数据--keys
该参数类似于分组的效果
#该参数类似分组的效果,即沿着合并轴方向,按照合并的数据源,进行分组,便于区分合并数据来源
1.6 指定合并轴方向新的index 的含义名称,一般和keys一起使用,让合并后的数据更直观--names
#该参数一般与keys一起使用,比如df1和df2是两个季度前两个月的数据,然后使用concat,将两个季度的合并成一个DataFrame,并且用keys指定每个季度的名称,再用names指定对应的含义
1.7 指定合并时是否允许合并轴上有重复标签--verify_integrity
#该参数只有在需要合并的数据,严格使用index或者列标签来区分数据的唯一性时,设置为True,才有意义
二、 merge--数据连接
merge类似SQL中的连表操作,即通过两个DataFrame共有的列,作为key,将表在横向连接起来,主要用于拓展数据信息,比如多个DataFrame,均只记录了自己关心的完整数据的一部分,希望通过某一共同列,连表,最终形成较为完成的数据信息,是一种非常有用的连接方式
2.1 概述
#merge函数基本表达式如下
2.2 指定键值列进行连表--on参数
#left_on及right_on用法
2.3 指定数据连接方式--how参数
#how参数决定了将如何用on指定的key对两个DataFrame进行连接,主要是比对on指定的两个df的列标签,
2.4 设置使用行索引作为连接key--left_index及right_index参数
#merge一般用于key为列标签时,对两个df进行链接,类似SQL中的连表操作,不过如果需要,也可以使用行的index作为key进行连表
2.5 设置有相同列时自动加后缀--suffixes
#如果连接的两个df,除了key列,或者on指定的列外,还有相同的列标签,为了进行区分,pd会自动在相同的列标签分别添加后缀,默认是x、y,也可通过suffixes显示指定
三、 join
join整体功能与merge类似,也与SQL中的join语法功能和表现完全一样,只不过join可以高效的连接多个DataFrame,而merge只能连接两个,相当于join的快捷方式,join连接时默认使用行index进行连接,但也可以指定类似merge使用列标签连表。
3.1 概述
#join函数的使用方法如下
3.2 行索引连接--无重复列标签
#默认join以行索引index连接,如果多个df没有重复的列标签,则可以直接进行连接,无需设置其他参数
3.3 行索引连接--有重复列标签
#当有重复列标签时,必须设置lsuffix和rsuffix参数,否则就会报错
3.4 列标签链接--列标签不相同,但内容有相同
#类似merge,如果想链接的两个df,可能列标签没有相同,但是某列标签内容有相同,希望用该列作为Key进行连表,则可以分别设置左右on的key
3.5 列标签链接--列标签有相同,内容有相同
#以列标签连表,就类似merge默认的用法,如果除了on指定的列标签,两个df还有其他相同的列标签,则lsuffix和rsuffix必须设置,否则会报错
3.6 列标签链接--列标签和列内容均不相同
此时,无法使用列标签连接两个DataFrame
3.7 join和merge主要异同
相同点:
连接方式的枚举相同,即均可以通过how指定连接方式,有left、right、inner、outer四种方式,效果也一样
在用列标签连接时,均可以通过on设置连接的列标签key
均可以以列标签或行索引进行连表,只不过默认的方式不一样
merger默认是列标签连接,可通过设置left_index和right_index为True,切换为按照行索引连表
join默认是行索引连表,可通过设置on切换为按照列标签连接
不同点:
默认连接轴方向不同,merge默认按照列标签连接,join默认按照行index连接
可连接DataFrame数量不同,merge只能连接2个,join可一次性连接多个列标签均不相同的DataFrame,如果列标签有相同,则只能连2个
四、 append
该方法主要是对存量的DataFrame添加新的行,或者直接将另外一个DataFrame按0轴(按行)合并到现有的DataFrame上,并且要求两个DataFrame的列数完全相等
该方法在比如需要对多个列数相同的数据进行合并分析时较为有用,不过直接使用pd.concat(df1,df2)也能达到目的,只是append用法可能更为直观些
import pandas as pd
五、 assign
该方法主要是对存量的DataFrame添加新的列,并且要求新增的列,对应的Series长度需与存量数据相同
该方法用的比较少,因为如果想增加新的列,有更快捷的方式,此处只是罗列说明
#df源数据如下
到此这篇关于pandas实现数据合并的示例代码的文章就介绍到这了,更多相关pandas 数据合并内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。