如何在需要使用表别名(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
答案 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