Joins

SQL JOIN LEFT

[code]df_Join = pd.merge(df1, df2, left_on='Email', right_on='email', how='left')[['Email', 'source']][/code]

Another example:

[code]df_Merged = df1.merge(df2, on='id', how='left')[/code]

Another example to find the non-matching records on 2 fields:

[code]df_join = pd.merge(df1, df2, left_on=['id1', 'field1'], right_on=['id2', 'field2'], how='left')[['id1', 'field1', 'field2']]
df_NoMatch = df_join[df_join['field2'].isna()][/code]

 

SQL INNER JOIN

[code]df_Join = pd.merge(df1, df2, on='Email')[/code]

Or:

[code]df_Merged = df1.merge(df2, on='id', how='inner')[/code]

Find difference

[code]df_difference = pd.DataFrame(df_First[~df_First['Email'].isin(df_Second['email'])])[/code]