2017-08-28 31 views
5

Nie widzę tego w dokumentacji porównawczej SQL dla Pand. Jaki byłby odpowiednik tego SQL w Pandach?Pandas SQL równoważnik dla "nie równy" klauzula

select a.var1, a.var2, b.var1, b.var2 
from tablea a, tableb b 
where a.var1=b.var1 
and a.var2=b.var2 
and a.var3 <> b.var3 

mam kod scalania następująco:

df = pd.merge(a, b, on=['VAR1','VAR2'], how='inner') 

Jak mogę włączyć część 'jest równe'?

and a.var3 <> b.var3 
+0

po 'merge' dodać' df.loc [df.var3_y = df.var3_x,!] ':) – Wen

Odpowiedz

9

Można zapytać wynikowy Rama:

a.merge(b, on=['VAR1','VAR2']).query('VAR3_x != VAR3_y') 
+1

Nieczęsto widzę cię odpowiadając na proste pytanie ;-) –

+0

Nieczęsto widzę, że odpowiadasz na proste pytanie: -) + 1 – Wen

+0

'! =' będący odpowiednikiem pytona '<>' – chicocvenancio