首页 > 技术文章 > df.join()| pd.merge()

Teyisang 2021-04-17 18:35 原文

约定: import pandas as pd
对象的实例方法-Join


DataFrame对象有个df.join()方法也能进行pd.merge()的合并,它能更加方便地按照对象df的索引进行合并,且能同时合并多个DataFrame对象。它具有如下参数:

df.join(other, on=None, how=’left’, lsuffix=”, rsuffix=”, sort=False)

* 创建DataFrame对象

df3=pd.DataFrame({'Red':[1,3,5],'Green':[5,0,3]},index=list('abd'))

df3

代码结果:
    Green Red
a     5       1
b     0       3
d     3       5

df4=pd.DataFrame({'Blue':[1,9],'Yellow':[6,6]},index=list('ce'))

df4
代码结果:
    Blue Yellow
c    1        6
e    9       6

1 简单合并(默认是left左连接)

df3.join(df4)

代码结果:
     Green Red  Blue  Yellow
a     5         1    NaN   NaN
b     0         3    NaN   NaN
d     3         5    NaN   NaN

 

2 和merge合并方式一样
df3.join(df4,how='outer')

代码结果:
    Green   Red   Blue   Yellow
a     5.0     1.0     NaN   NaN
b     0.0     3.0     NaN   NaN
c    NaN   NaN    1.0      6.0
d     3.0     5.0     NaN   NaN
e    NaN   NaN    9.0     6.0


3 合并多个DataFrame对象
df5=pd.DataFrame({'Brown':[3,4,5],'White':[1,1,2]},index=list('aed'))
df3.join([df4,df5])

代码结果:
   Green Red Blue Yellow Brown White
a    5       1    NaN   NaN    3.0      1.0
b    0       3    NaN   NaN   NaN    NaN
d    3       5    NaN   NaN    5.0      2.0

df3.join([df4,df5],how='outer')

代码结果:
   Green Red  Blue  Yellow Brown White
a  5.0     1.0    NaN  NaN     3.0      1.0
b  0.0     3.0    NaN  NaN   NaN     NaN
c  NaN   NaN   1.0    6.0    NaN     NaN
d  3.0     5.0    NaN  NaN    5.0       2.0
e NaN    NaN   9.0   6.0      4.0       1.0

推荐阅读