Pandas中dataframe数据合并
1.相关函数
DataFrame.merge(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)
参数 | 含义 |
---|---|
right | 要合并的对象 |
how | 合并的类型{‘left’,‘right’,‘outer’,‘inner’,‘cross’}。left:仅使用左框架中的键,类似于SQL左外部联接;保留密钥顺序。right:仅使用右框架中的键,类似于SQL右外部联接;保留密钥顺序。outer:使用来自两个frame的键的并集,类似于SQL完全外部联接;按字典顺序对键排序。inner:使用两个frame的关键点的交点,类似于SQL内部联接;保留左键的顺序。 cross:从两个frame创建笛卡尔积,保留左关键frame的顺序。 |
on | 用于连接的列名,必须存在于左右两个DataFrame对象中,如果未指定,且其他连接键也未指定,以left和right列名的交集作为连接键 |
left_on | 左侧DataFrame中用作连接键的列 |
right_on | 右侧DataFrame中用作连接键的列 |
left_index | 将左侧的行索引用作其连接键 |
right_index | 将右侧的行索引用作其连接键 |
sort | 根据连接键对合并后的数据进行排序,默认为True,有时在处理大数据集时,禁用该选项可获得较好的性能。 |
suffixes | 字符串值元组,用于追加到重叠列名的末尾,默认为(’_x’,’_y’) |
copy | 设置为False,可以在某些特殊情况下避免将数据复制到结果数据结构中。默认总是复制 |
选项 | 说明 |
---|---|
inner | 使用两个表都有的键 |
left | 使用左表中所有的键 |
right | 使用右表中所有的键 |
outer | 使用两个表中所有的键 |
DataFrame.join(other, on=None, how='left', lsuffix='', rsuffix='', sort=False)
参数 | 含义 |
---|---|
other | DataFrame或Series或DF列表 |
on | |
how | {‘left’,‘right’,‘outer’,‘inner’},默认为’left’ |
lsuffix | 从左边frame中添加的后缀 |
rsuffix | 从右边frame中添加的后缀 |
sort | 按字典顺序排列结果DataFrame。如果为False,则连接键的顺序取决于连接类型(how关键字) |
numpy.concatenate((a1, a2, ...), axis=0, out=None, dtype=None, casting="same_kind")
参数 | 含义 |
---|---|
(a1, a2, …) | arrays必须具有相同的形状,但与轴对应的尺寸标注除外(默认情况下为第一个尺寸标注) |
axis | arrays将沿其连接的轴,默认为0 |
out | 如果提供,则为放置结果的位置 |
dtype | 目标arrays将具有此数据类型。不能与out一起提供。 |
casting | {‘no’, ‘equiv’, ‘safe’, ‘same_kind’, ‘unsafe’},控制可能发生的数据转换类型。默认为“同类” |
DataFrame.combine_first(other)
通过将一个DataFrame中的空值填充到另一个DataFrame中的非空值,组合两个DataFrame对象。结果DataFrame的行和列索引将是这两个索引的并集。
参数 | 含义 |
---|---|
other | 提供了用于填充空值的DataFrame |
Series.combine_first(other)
通过将一个Series中的空值与另一个Series中的非空值填充,组合两个Series对象。结果索引将是两个索引的并集。
参数 | 含义 |
---|---|
other | 用于填充空值的值 |
pandas.concat(objs, axis=0, join='outer', ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=False, copy=True)
参数 | 含义 |
---|---|
objs | 参与连接的pandas对象的列表或字典,唯一必需的参数 |
axis | 指明连接的轴向,默认为0 |
join | ‘inner’,‘outer’,其中之一,默认为’outer’。指明其他轴向上的索引是按交集(inner)还是并集(outer)进行合并 |
join_axes | 指明用于其他n-1条轴的索引,不执行并集/交集运算 |
keys | 与连接对象有关的值,用于形成连接轴向上的层次化索引。可以是任意值的列表或数组、元组数组、数组列表。 |
levels | 指定用作层次化索引各级别上的索引,如果设置了keys的话 |
names | 用于创建分层级别的名称,如果设置了keys和(或)levels的话 |
verify_integrity | 检查结果对象新轴上的重复情况,如果发现则引发异常。默认False允许重复。 |
ignore_index | 不保留连接轴上的索引,产生一组新索引。 |