xxxxxxxxxx
df_2017.merge(df_2018, left_on = 'Textbook?', right_on = 'Textbook?', how = 'inner', suffixes = ('_2017', '_2018'))\
.merge(df_2019, left_on = 'Textbook?', right_on = 'Textbook?', how = 'inner')\
.merge(df_2020, left_on = 'Textbook?', right_on = 'Textbook?', how = 'inner', suffixes = ('_2019', '_2020'))\
.merge(df_2021, left_on = 'Textbook?', right_on = 'Textbook?', how = 'inner')\
.merge(df_2022, left_on = 'Textbook?', right_on = 'Textbook?', how = 'inner', suffixes = ('_2021', '_2022'))\
xxxxxxxxxx
df_outer = pd.merge(df1, df2, on='id', how='outer') #here id is common column
df_outer
xxxxxxxxxx
#suppose you have two dataframes df1 and df2, and
#you need to merge them along the column id
df_merge_col = pd.merge(df1, df2, on='id')
xxxxxxxxxx
# Merging 3 or more dataframes base on a common column
import pandas as pd
from functools import reduce
#Create a list of df to combine
list_of_df = [df_1,df_2,df_3]
#merge them together
df_combined = reduce(lambda left,right: pd.merge(left,right,on='common column'), list_of_df)
xxxxxxxxxx
import pandas as pd
T1 = pd.merge(T1, T2, on=T1.index, how='outer')
xxxxxxxxxx
# compile the list of dataframes you want to merge
data_frames = [df1, df2, df3]
df_merged = reduce(lambda left,right: pd.merge(left,right,on=['DATE'],
how='outer'), data_frames)
# if you want to fill the values that don't exist in the lines of merged dataframe simply fill with required strings as
df_merged = reduce(lambda left,right: pd.merge(left,right,on=['DATE'],
how='outer'), data_frames).fillna('void')
xxxxxxxxxx
from functools import reduce
Name of a column in all dataframes is 'DATE'
df_merged = reduce(lambda left,right: pd.merge(left,right,on=['DATE'],
how='outer'), data_frames)
# if you want to fill the values that don't exist in the lines of merged dataframe simply fill with required strings as
df_merged = reduce(lambda left,right: pd.merge(left,right,on=['DATE'],
how='outer'), data_frames).fillna('void')
xxxxxxxxxx
from functools import reduce
import pandas as pd
dfs = [df1, df2, df3, ]
nan_value = 0
# solution 1 (fast)
result_1 = pd.concat(dfs, join='outer', axis=1).fillna(nan_value)
# solution 2
result_2 = reduce(lambda df_left,df_right: pd.merge(df_left, df_right,
left_index=True, right_index=True,
how='outer'),
dfs).fillna(nan_value)