如何使用pandas使用别名表名进行SQL样式的内连接

时间:2017-04-29 16:02:04

标签: python pandas

如何在需要使用表别名(x1,x2)的多个语句上使用内连接构造pandas数据集

我的假设是在merge语句中,我需要以某种方式将列名附加到x1_和x2_ ...但只能看到stackoverflow加入一个条件的示例

我需要前缀,因为我需要进一步嵌套这个数据集

select * from data where cpty_type = 'INTERBRANCH'and (expiryDate >= '2017-04-18 00:00:00.000')) x1
inner join 
(select * from data where cpty_type = 'INTERBRANCH' and (expiryDate >= '2017-04-18 00:00:00.000')) x2
on (x1.extCptyID = x2.baseCptyID
and x1.baseCptyID = x2.extCptyID

1 个答案:

答案 0 :(得分:0)

pd.merge有一个后缀参数,可以附加重叠列名。

df_A = pd.DataFrame({'id':pd.np.arange(1,10),'col1':list('ABCDEFGHI')})
print(df_A)

  col1  id
0    A   1
1    B   2
2    C   3
3    D   4
4    E   5
5    F   6
6    G   7
7    H   8
8    I   9

df_B = pd.DataFrame({'id':pd.np.arange(1,10),'col1':list('QWERTYUIO')})
print(df_B)  

  col1  id
0    Q   1
1    W   2
2    E   3
3    R   4
4    T   5
5    Y   6
6    U   7
7    I   8
8    O   9

pd.merge(df_A,df_B, on=['id'], suffixes=('_A','_B'))

输出:

  col1_A  id col1_B
0      A   1      Q
1      B   2      W
2      C   3      E
3      D   4      R
4      E   5      T
5      F   6      Y
6      G   7      U
7      H   8      I
8      I   9      O