One - One Code All

Blog Content

pandas中DataFrame数据合并merge方法,inner交集,outer合集,left左连接

Python 统计学-科学计算   2014-06-07 11:33:55

pandas中DataFrame数据合并merge方法,inner交集,outer合集,left左连接


merge 函数通过一个或多个键将数据集的行连接起来。

场景:针对同一个主键存在的两张包含不同特征的表,通过主键的链接,将两张表进行合并。合并之后,两张表的行数不增加,列数是两张表的列数之和。


def 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):


参数 描述

how 数据融合的方法,从在不重合的键,方式(inner、outer、left、right)

on 用来对齐的列名,一定要保证左表和右表存在相同的列名。

left_on 左表对齐的列,可以是列名。也可以是DataFrame同长度的arrays

right_on 右表对齐的列,可以是列名。

left_index 将左表的index用作连接键

right_index 将右表的index用作连接键

suffixes 左右对象中存在重名列,结果区分的方式,后缀名。

copy 默认:True。将数据复制到数据结构中,设置为False提高性能。



默认:以重叠的列名当作连接键

默认:做inner连接,取key的交集

连接方式还有left right outer

多键连接时将连接键做成列表传入。

on默认是两者同时存在的列


两个对象的列名不同,需要分别制定。

df7 = pd.merge(df1, df2, left_on=['key1','data1'], right_on=['key2','data2'], how='outer')

import pandas as pd

df1 = pd.DataFrame({'data1': [1, 2, 3, 6]})
df2 = pd.DataFrame({'data1': [1, 2, 3, 4], 'data2': [1, 2, 3, 5]})
df3 = pd.merge(df1, df2, on='data1', how="left")
print(df1)
print(df2)
print("===" * 10)
print(df3)



上一篇:airflow.cfg配置参数简介
下一篇:pandas中DataFrame的连接操作join

The minute you think of giving up, think of the reason why you held on so long.