6.数据合并

2018-08-26  本文已影响0人  soyouwantme

数据合并特指两个文件或者DataFrame对象合并的过程,而数据规整特指合并后或者无须合并的数据的清理、转换、重塑过程。

数据合并主要包括下面两种操作:

轴向连接

pd.concat()函数的参数如下所示:

pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
          keys=None, levels=None, names=None, verify_integrity=False, copy=True)
参数 说明
objs 参与连接的Pandas对象的列表。
axis 默认为0(按横轴合并)
ignore_index 布尔值,默认为False。如果为True,则不使用连接轴上的索引值。生成的轴将被标记为0,...,n - 1。如果连接对象的连接轴没有有意义的索引信息,则这非常有用。注意其他轴上的索引值仍然按照join指定的方式处理
keys 序列,默认为None。使用该序列构建层次化索引,且该索引在最外层。如果存在多个级别,应该使用元组序列指定
join {'inner','outer'},默认'outer'。'outer'表示取并集,'inner'表示取交集
join_axes 指定其他轴上的索引,不执行并集或者交集运算

数据融合merge


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, validate=None)

三种融合方式:

参数 说明
left 参与合并的左侧DataFrame
right 参与合并的右侧DataFrame
how {'left', 'right', 'outer', 'inner'},默认为'inner'
on 用于连接的列名。必须包含在左右两个DataFrame中。如果未指定,并且left_index和right_index是False,则左右两个DataFrame列名的交集将作为连接键
left_on 左侧DataFrame中用作连接键的列
right_on 右侧DataFrame中用作连接键的列
left_index {True, False},将左侧的行索引用作其连接键
right_index {True, False},将右侧的行索引用作其连接键
sort 根据连接键对合并后的数据进行排序,默认为True。有时在处理大数据集时,禁用该选项可获得更好的性能
suffixes 字符串值元祖,用于追加到重叠列名的末尾,默认为('_x','_y')。例如,如果左右两个DataFrame对象都有"data",则结果中就会出现"data_x"和"data_y"

数据融合join


索引-索引融合

pd.merge(left, right, left_index=True, right_index=True)

默认情况下,join实现的是在连接键上做左连接:

left.join(right, how='inner')

索引-列融合

left.join(right, on=key_or_keys)

数据融合combine_first


根据一个DataFrame对象的值为另外一个DataFrame对象做缺失值填补。

它实现了:在融合过程中,用参数对象中的数据为调用者对象的缺失数据“打补丁”,并且会自动对齐索引。

根据df1中的值去填补df2中的缺失值:

df2.combine_first(df1)
上一篇 下一篇

猜你喜欢

热点阅读