2016-05-16 1 views
-2

Ich habe zwei DataFramemerge 2 Datenrahmen in Pandas und mit Zustand

df1; columns - a, b, c 
df2; columns - d, e 

Ich möchte merge DF1 mit DF2 mit pd.isnull(e,c)

auf df1.a = df2.d und eine neue Spalte 'f' auf dem Ergebnis kommen gelassen Wie kann ich das machen?

+0

Können Sie Daten in 'df1',' df2' (3,4 Zeilen) und die gewünschte Ausgabe hinzufügen? – jezrael

Antwort

0

Wie wäre:

merged = df1.merge(df2, left_on='a', right_on='d' how='left') 
merged['f'] = pd.isnull(merged[['e', 'c']]).any(axis=1) 

Siehe .merge()docs. Verwenden Sie .any(axis=1) oder .all(axis=1) je nachdem, was Sie überprüfen möchten.

+0

Danke Jansen. Wie kann ich Datenrahmen mit '<>' Bedingung verbinden? join auf df1.a <> df2.d –

+0

Klingt wie du willst 'merge (.., how = 'outer')' und dann 'fusioniert [merged.a! = Fusioned.d]' – Stefan

+0

Ich bin nicht sicher, was Sie sagten, tun die Notwendigkeit, um genau zu sein mein Äquivalent sql ist "wählen * aus df1 inner join df2 auf df1.b = df2.e und df1.b <> df2.d und df1.c = 0" –