【pandas 基本操作:数据合并】

pandas基本操作

第一章 数据清洗
第二章 数据合并
第三章 数据重塑
第四章 数据转换


文章目录

  • pandas基本操作
  • 前言
  • 1. 轴向堆叠数据
  • 2. 主键合并数据
  • 3. 根据行索引合并数据
  • 4. 合并重叠数据


前言

数据清洗是一项复杂且繁琐的工作,同时也是整个数据分析过程中最为重要的环节。

数据清洗的目的在于提高数据质量,将脏数据清洗干净,使原数据具有完整性唯一性权威性合法性一致性等特点

脏数据在这里指的是对数据分析没有实际意义格式非法不在指定范围内的数据。


提示:以下是本篇文章正文内容,下面案例可供参考

1. 轴向堆叠数据

concat()函数可以沿着一条轴将多个对象进行堆叠,其使用方式类似数据库中的数据表合并。

concat(objs,axis=0,join=‘outer’,join_axes=None,ignore_index=False,
keys=None,levels=None,names=None, ...)
  • axis:表示连接的轴向,可以为01,默认为0
  • join:表示连接的方式inner表示内连接,outer表示外连接,默认使用外连接
  • ignore_index:如果设置为True清除现有索引并重置索引值。
  • names:结果分层索引中的层级的名称。

根据轴方向的不同,可以将堆叠分成横向堆叠纵向堆叠默认采用的是纵向堆叠方式

在堆叠数据时,默认采用的是外连接(join参数设为outer)的方式进行合并,当然也可以通过join=inner设置为内连接的方式。

外连接的方式求得是合集,内连接的方式求的是交集

当使用concat()函数合并时,若是将axis参数的值设为1,且join参数的值设为outer,代表着使用横向堆叠外连接的方式进行合并
【pandas 基本操作:数据合并】_第1张图片

当使用concat()函数合并时,若是将axis参数的值设为0,且join参数的值设为inner,则代表着使用纵向堆叠内连接的方式进行合并。
【pandas 基本操作:数据合并】_第2张图片

2. 主键合并数据

主键合并类似于关系型数据库的连接方式,它是指根据一个或多个键将不同的DatFrame对象连接起来,大多数是将两个DatFrame对象中重叠的列作为合并的键。

Pandas中提供了用于主键合并的merge()函数。

pandas.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)
  • left:参与合并的左侧DataFrame对象。
  • right:参与合并的右侧DataFrame对象。
  • how:表示连接方式,默认为inner

how参数可以取下列值:

  • left:使用左侧的DataFrame的键,类似SQL的左外连接
  • right:使用右侧的DataFrame的键,类似SQL的右外连接
  • outer:使用两个DataFrame所有的键,类似SQL的全连接
  • inner:使用两个DataFrame键的交集,类似SQL的内连接

在使用merge()函数进行合并时,默认会使用重叠的列索引做为合并键,并采用内连接方式合并数据,即取行索引重叠的部分。

【pandas 基本操作:数据合并】_第3张图片

除此之外,merge()函数还支持对含有多个重叠列的DataFrame对象进行合并

【pandas 基本操作:数据合并】_第4张图片

使用外连接的方式将leftright进行合并时,列中相同的数据会重叠,没有数据的位置使用NaN进行填充。

【pandas 基本操作:数据合并】_第5张图片

左连接是以左表为基准进行连接,所以left表中的数据会全部显示right表中只会显示与重叠数据行索引值相同的数据,合并后表中缺失的数据会使用NaN进行填充。

【pandas 基本操作:数据合并】_第6张图片

右连接与左连接的规则正好相反,右连接是以右表为基准,右表中的数据全部显示,而左表中显示与重叠数据行索引值相同的数据,合并后缺失的数据使用NaN填充合并。

【pandas 基本操作:数据合并】_第7张图片

假设两张表中的行索引与列索引均没有重叠的部分,但依旧可以使用merge函数来合并,只需要将参数left_indexright_index的值设置为True即可。

【pandas 基本操作:数据合并】_第8张图片

3. 根据行索引合并数据

join()方法能够通过索引指定列来连接多个DataFrame对象。

join(other,on = None,how ='left',lsuffix ='',rsuffix ='',sort = False )
  • on:名称,用于连接列名
  • how:可以从{‘‘left’’ ,‘‘right’’, ‘‘outer’’,‘‘inner’’}中任选一个,默认使用左连接的方式。
  • sort:根据连接键对合并的数据进行排序,默认为False

4. 合并重叠数据

DataFrame对象中出现了缺失数据,而我们希望使用其他DataFrame对象中的数据填充缺失数据,则可以通过combine_first()方法为缺失数据填充。

combine_first(other)
  • 上述方法中只有一个参数other,该参数用于接收填充缺失值的DataFrame对象。

假设现在有left表与right表,其中left表中存在3个缺失的数据,而right表中的数据是完整的,并且right表与left表有相同的索引名,此时我们可以使用right表中的数据来填充left表的缺失数据,得到一个新的result表

【pandas 基本操作:数据合并】_第9张图片
转载于:https://edu.csdn.net/skill/python02/python-3-205?category=883&typeId=17523#21__284

你可能感兴趣的:(pandas,python)