在多个键上使用Pandas.merge()时应用了哪个布尔运算符

时间:2018-01-17 10:35:17

标签: python pandas

假设我们有2个数据帧

left = pd.DataFrame({'key1': ['K0', 'K0', 'K1', 'K2'],
                 'key2': ['K0', 'K1', 'K0', 'K1'],
                    'A': ['A0', 'A1', 'A2', 'A3'],
                    'B': ['B0', 'B1', 'B2', 'B3']})

right = pd.DataFrame({'key1': ['K0', 'K1', 'K1', 'K2'],
                           'key2': ['K0', 'K0', 'K0', 'K0'],
                              'C': ['C0', 'C1', 'C2', 'C3'],
                              'D': ['D0', 'D1', 'D2', 'D3']})

使用pd.merge(left,right,how='inner',on=['key1','key2'])时,方法是返回left['key1'] == right['key1'] AND left['key2'] == right['key2']的值还是使用另一个布尔运算符?

这个特征是否与语言特定属性有关,还是因为内,外,左,右连接的工作原理?

我的直觉是它使用'和'布尔运算符,但我需要一个明确的答案。

1 个答案:

答案 0 :(得分:1)

pd.merge的文档中,它是一个交集,所以你描述了一个AND:

  

如何:{'左','右','外','内'},默认'内'

     

left:仅使用左框架中的键,类似于SQL左外连接;保留关键顺序

     

右:仅使用右框中的键,类似于SQL右外连接;保留关键顺序

     

outer:使用来自两个帧的键的并集,类似于SQL全外连接;按字典顺序排序键

     

inner:使用来自两个帧的键的交集,类似于SQL内部联接;保留左键的顺序