首页 > 解决方案 > 迭代多个数据帧的合并

问题描述

我正在尝试构建一个循环,它将采用单独的数据帧并在单个“主”数据帧上合并。

每个单独的数据框都乱序,我想将它们与主数据框的 CAS 列中的值对齐。

示例主数据框

主数据框

示例数据框 1:

数据框1

示例数据框 2:

[ 数据框2]

实际数据

主数据框主数据框

数据框1数据框1

数据帧2数据帧2

标签: pythonpandasloopsfor-loopmerge

解决方案


解决方案 1:
仅在 df1 和 df2 中使用 if 'value' 列,而不在 df_master 中使用。

dfcon = pd.concat([df1, df2])
df = pd.merge(df_master, dfcon, how='left', on='CAS')

解决方案 2:
如果“值”列也在 df_master 中,则使用。

df_master_drop = df_master.drop(columns=['value'])
df_drop = pd.merge(df_master_drop, dfcon, how='left', on='CAS')
df = df_master.combine_first(df_drop)

注意:如果有重复项,请使用 dfcon = pd.concat([df1, df2]).drop_duplicates('CAS')。这将保留最早的 CAS 值。


推荐阅读