import pandas as pd
from IPython.display import display
from IPython.display import Image
raw_data = {
'subject_id': ['1', '2', '3', '4', '5'],
'first_name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
'last_name': ['Anderson', 'Ackerman', 'Ali', 'Aoni', 'Atiches']}
df_a = pd.DataFrame(raw_data, columns = ['subject_id', 'first_name', 'last_name'])
raw_data = {
'subject_id': ['4', '5', '6', '7', '8'],
'first_name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
'last_name': ['Bonder', 'Black', 'Balwner', 'Brice', 'Btisan']}
df_b = pd.DataFrame(raw_data, columns = ['subject_id', 'first_name', 'last_name'])
raw_data = {
'subject_id': ['1', '2', '3', '4', '5', '7', '8', '9', '10', '11'],
'test_id': [51, 15, 15, 61, 16, 14, 15, 1, 61, 16]}
df_n = pd.DataFrame(raw_data, columns = ['subject_id','test_id'])
# Join the two dataframes along rows
df_new = pd.concat([df_a, df_b])
# Join the two dataframes along columns
pd.concat([df_a, df_b], axis=1)
# Merge two dataframes along the subject_id value
pd.merge(df_new, df_n, on='subject_id')
# Merge two dataframes with both the left and right dataframes using the subject_id key
pd.merge(df_new, df_n, left_on='subject_id', right_on='subject_id')
# Merge with outer join
pd.merge(df_a, df_b, on='subject_id', how='outer')
# Merge with inner join
pd.merge(df_a, df_b, on='subject_id', how='inner')
# Merge with right join
pd.merge(df_a, df_b, on='subject_id', how='right')
# Merge with left join
pd.merge(df_a, df_b, on='subject_id', how='left')
# Merge while adding a suffix to duplicate column names
pd.merge(df_a, df_b, on='subject_id', how='left', suffixes=('_left', '_right'))
# Merge based on indexes
pd.merge(df_a, df_b, right_index=True, left_index=True) |