![eaf937ed8e0c83c6a8552923fdf7ea95.png](https://i-blog.csdnimg.cn/blog_migrate/170da67ca2e74788c9a1025b17fbbb1e.jpeg)
总的来说:pandas.merge()
才是老大,merge/join 都是臭弟弟。
pandas.DataFrame.merge()
和pandas.DataFrame.join()
为了更加方便的实现数据的pandas.merge()
的方法,
举例来说:一下两种方式是等价的。
df1.merge(right=df2, ...)
pandas.merge(left=df1, right=df2, ...)
.
具体说df.join()
和df.merge()
两个弟弟的区别:
- 两表key值类型:
df1.join(df2)
通常joindf2
的indexdf1.merge(df2)
又可以用数据columns也是可以是index.
- by default,
df1.join(df2)
uses the index ofdf1
anddf1.merge(df2)
uses column(s) ofdf1
. That can be overridden by specifying df1.join(df2, on=key_or_keys)
ordf1.merge(df2, left_index=True)
.- left vs inner join:
df1.join(df2)
does a left join by default (keeps all rows ofdf1
), butdf.merge
does an inner join by default (returns only matching rows ofdf1
anddf2
)