在键上合并Python中的多个数据帧



我有三个以Date_Final为列的数据帧。我想将它们全部合并,目前,我的代码是。我想将这些数据帧合并到一个单独的数据帧中,首先我从任何股票的数据帧创建一个新的数据帧。

优化后的代码应该是什么?

df_stockanlaysis = stock1[['Date_final']]
df_stockanlaysis = pd.merge(df_stockanlaysis, stock1, how='left', on ="Date_final")
df_stockanlaysis = pd.merge(df_stockanlaysis, stock2, how='left', on ="Date_final")
df_stockanlaysis = pd.merge(df_stockanlaysis, stock3, how='left', on ="Date_final")

您可以使用reduce、pandas和list理解。将这些数据帧放在类似的列表中

dfs = [df_stockanlaysis1, df_stockanlaysis2, df_stockanlaysis3]

在这种情况下,我假设公共列是"Date_final">

df_final = reduce(lambda left,right: pd.merge(left,right,on='Date_final'), dfs)

最新更新