merge()链接DataFrame
pandas可以很方便的把多个DataFrame链接到一块儿,就像数据库的sql语句一样,可以根据应用的需要,创建不同的视图,方法的原型为:
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 或 Series 对象。 -
right
: 待链接的右边 DataFrame 或 Series 对象。 -
how: 指定链接的方式"inner", "outer", "left", "right" 默认为"inner" ,类似于数据库两个表查询的关系
-
on
:指定两个对象的链接条件,可以是一个列或者多个列,如果不指定,默认以两个对象中都存在的列名,在on 中指定的列名,必须在两个对象中都存在 -
left_on
:当两个对象中可能存在列名不一样时,可以指定要对应的列名,如在left对象中是id,在right对象中是mid -
right_on
:当两个对象中可能存在列名不一样时,可以指定要对应的列名,如在left对象中是id,在right对象中是mid 。 -
right_index
left_index
:这两个一般要成对出现,即当left_index为true时,right_index要么也为true,或者right_on指定的有列
以下代码截图来自Jupyter中文集成版(Python整合版)
通过内链接两个dataframe, 两个里面都有'id'
当df1中为id df2中为mid时
当有多个列进行对应时
how='left'
此处用到了fillna()方法 ,当以左表进行链接时,可能有一些列没有值 ,pandas里,默认为以nan呈现,fillna(x)即将nan以x值的方式展现
right 、outer 在此不在一一举例