主键合并数据_第1页
主键合并数据_第2页
主键合并数据_第3页
主键合并数据_第4页
主键合并数据_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

主键合并数据教师:亢华爱北京信息职业技术学院商务数据分析与应用专业教学资源库目录Contents主键合并数据概述1PART概述概述主键合并类似于关系型数据库的连接方式,它是指根据一个或多个键将不同的DatFrame对象连接起来,大多数是将两个DatFrame对象中重叠的列作为合并的的键pandas.merge(left,right,how='inner',on=None,

left_on=None,right_On=Noneleft_index=False,

right_index=False,sort=False,suffixes=('_x','_y’),

copy=True,indicator=False,validate=None)Pandas中提供了用于主键合并的merge()函数,其语法格式如下(1)left:参与合并的左侧DataFrame对象。(2)right:参与合并的右侧DataFrame对象。(3)how:表示连接方式,默认为inner,该参数支持以下取值:♦left:使用左侧的DataFrame的键,类似SQL的左外连接。♦right:使用右侧的DataFrame的键,类似SQL的右外连接。♦outer:使用两个DataFrame所有的键,类似SQL的全连接。♦inner:使用两个DataFrame键的交集,类似SQL的内连接(4)on:用于连接的列名。必须存在于左右两个DataFrame对象中。(5)left_on:以左侧DataFrame做为连接键。(6)right_on:以右侧DataFrame做为连接键。(7)left_index:左侧的行索引用作连接键。(8)right_index:右侧的行索引用作连接键。(9)sort:是否排序,接收布尔值,默认为False。(10)suffixes:用于追加到重叠列名的末尾,默认为(_x,_y)。概述参数含义在使用merge()函数进行合并时,默认会使用重叠的列索引作为合并键,并采用内连接方式合并数据,即取行索引重叠的部分概述merge()函数的典型应用场景针对同一个主键存在两张不同字段的表,根据主键整合到一张表里面图中的left表和right表中均有索引为"key"的一列数据,并且这一列有重叠的数据,这两张表进行主键合并后得到result表主键合并示意图2PART主键合并数据接下来,通过一个示例演示如何使用merge()函数将left表与right表进行合并,具体代码如下In[27]:importpandasaspdleft=pd.DataFrame({'key':['K0','K1','K2'],'A':['A0','A1','A2'],'B':['B0','Bl','B2']})right=pd.DataFrame({'key':['K0','K1','K2','K3'],'C':['C0','C1',C2','C3'],'D':['D0','D1',D2','D3']})pd.merge(left,right,on='key')Out[27]:KeyABCD0K0A0B0C0D01K1A1B1C1D12K2A2B2C2D2上述代码中,创建了两个DataFrame类对象left与right,然后使用merge()函数按照key列进行合并。主键合并数据主键合并数据merge()函数还可以对含有多个重叠列的DataFrame对象进行合并图中,left表与right表中存在两个列名相同、数据相似的列索引,分别为key和B。用key、B做为合并键,合并后得到的结果如result表所示两个主键合并接下来,通过代码实现left表和right表以key、B作为合并键的合并效果,具体代码如下In[28]:importpandasaspdleft=pd.DataFrame({'key':['K0','K1','K2'],'A':['A0','A1','A2'],'B':['B0','Bl','B2']})right=pd.DataFrame({'key':['K0','K5','K2','K5'],'B:['B0','B1',B2','B5'],'C':['C0','C1',C2','C3'],'D':['D0','D1',D2','D3']})pd.merge(left,right,on=['key','B'])Out[28]:KeyABCD0K0A0B0C0D01K2A2B2C2D2上述代码中分别创建了两个DataFrame对象,分别是left和right。其中,left对象具有key、A、B三列数据,right对象具有key、B、C、D四列数据,然后调用merge()函数采用内连接的方式合并left和right,并使用列名相同的列索引key和B作为合并键,进行数据合并。主键合并数据内连接(inner)外连接(outer)左连接(left)右连接(right)merge()函数支持的链接类型merge()函数中how参数的值默认为inner,表示使用内连接方式合并,接下来通过修改how参数的值演示另外3种连接方式。主键合并数据主键合并数据图中所示采用的是外连接的合并方式,使用外连接的方式将left与right进行合并时,列中相同的数据会重叠,没有数据的位置使用NaN进行填充外连接示例主键合并数据

图中所示采用的是左连接方式将left与right进行合并,左连接是以左表为基准进行连接,所以left表中的数据会全部显示,right表中只会显示与重叠数据行索引值相同的数据,合并后表中缺失的数据会使用NaN进行填充。左连接示例主键合并数据图中所示采用的是左连接方式将left与right进行合并,右连接与左连接的规则正好相反,右连接是以右表为基准,右表中的数据全部显示,而左表中显示与重叠数据行索引值相同的数据,合并后缺失的数据使用NaN填充合并。右连接合并示例主键合并数据即使两张表中的行索引与列索引均没有重叠的部分,也可以使用merge()函数来合并。现有图4-18所示的数据,在left表中的索引与right表中的索引没有重叠部分,当使用merge()函数合并时,只需要将参数left_index与right_index的值设置为True即可。合并示意图接下来,通过编写代码展示上图所示的效果,具体代码如下In[29]:importpandasaspdleft=pd.DataFrame({'A':['A0','A1','A2'],'B':['B0','Bl','B2']})right=pd.DataFrame({'C':['C0','C1',C2'],'D':['D0','D1',D2']})pd.merge(left,right,how='outer’,left_index=True,right_index=True)Out[29]:ABCD0A0B0NaNNaN1A1B1NaNNaN2A2B2NaNN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论