python中的SQL双连接

python中的SQL双连接,python,mysql,join,Python,Mysql,Join,我有两张桌子,a和b各有许多行。 我有一个SQL代码说 SELECT* FROM a INNER JOIN b ON (a.names = b.names) and (a.age = b.age) 我试图在python中使用.merge()函数实现这一点,从第一个连接生成一个中间表,然后将该表连接到下一个条件。但是python出现了一个错误 join3 = a.merge(b,how='inner',left_on = 'name', right_on = 'name') join4 = jo

我有两张桌子,a和b各有许多行。 我有一个SQL代码说

SELECT* FROM a INNER JOIN b ON (a.names = b.names) and (a.age = b.age)
我试图在python中使用.merge()函数实现这一点,从第一个连接生成一个中间表,然后将该表连接到下一个条件。但是python出现了一个错误

join3 = a.merge(b,how='inner',left_on = 'name', right_on = 'name')
join4 = join3.merge(b,how'inner',left_on='age',right_on='age')
这会导致内存错误: 我尝试用各种方法来复制这一点。 我也试过这个

merge = a.merge(b[b.age==a.age],left_on= 'name', right_on='name')
我不知道该怎么办

a.merge(b, how='inner', on=['name','age'])
如果说你在b中的ages专栏有一个不同的名字,比如years,我的是哪一个

b['age'] = b['years'] 
然后我可以用上面的。 我还可以重命名该列,但希望保留所有原始列

如果说你在b中的ages专栏有一个不同的名字,比如years,我的是哪一个

b['age'] = b['years'] 
然后我可以用上面的。
我还可以重命名该列,但希望保留所有原始列

上述语句也可以写成
a.merge(b,how='inner',on=['name','age'])
。应该会对所用的内存产生一些影响。是的,谢谢,我相信,这是对其他人的参考,我不能使用这个公式,因为我的列有不同的名称,但我只是创建了一个新列,并将其命名为我需要的名称,并使其与其他列相等,问题解决了!上面的语句也可以写成
a.merge(b,how='inner',on=['name','age'])
。应该会对所用的内存产生一些影响。是的,谢谢,我相信,这是对其他人的参考,我不能使用这个公式,因为我的列有不同的名称,但我只是创建了一个新列,并将其命名为我需要的名称,并使其与其他列相等,问题解决了!