Merge DataFrames like SQL JOINs with inner, left, right, outer, and concat for stacking rows.
Merging DataFrames
import pandas as pd
users = pd.DataFrame({'id':[1,2,3], 'name':['Alice','Bob','Carol']})
orders = pd.DataFrame({'user_id':[1,1,2], 'total':[50,30,80]})
# Merge (like SQL JOIN)
pd.merge(users, orders, left_on='id', right_on='user_id') # INNER
pd.merge(users, orders, left_on='id', right_on='user_id', how='left') # LEFT
pd.merge(users, orders, left_on='id', right_on='user_id', how='right') # RIGHT
pd.merge(users, orders, left_on='id', right_on='user_id', how='outer') # FULL
# Join on index
df1.join(df2, how='left')
# Concat (stack rows or columns)
pd.concat([df1, df2]) # stack rows (UNION)
pd.concat([df1, df2], axis=1) # side by side
pd.concat([df1, df2], ignore_index=True) # reset index