我希望能够打开两个Excel工作簿并比较每个可能具有匹配值的列。发现匹配值后,我想从工作簿1的同一行中获取另一个值,并将其写入工作簿2的同一匹配值行。
对于我的输出文件,我只是尝试添加一列数据,这些数据将与我在两个工作簿之间进行比较的其他列中的值匹配的地方匹配。
在下面的示例中,我想比较两个工作簿之间的列A。找到匹配的值后,我想将该值写入工作簿1中的C列到工作簿2中的C列的同一行。
Input workbook 1:
A B C
dog 1 red
cat 2 green
bird 3 blue
Input workbook 2:
A B C D E
pig house stuff stuff
cat car stuff stuff
horse train stuff stuff
Output Workbook 2
A B C D E
pig house stuff stuff
cat car green stuff stuff
horse trian stuff stuff
我已经使用openpyxl和pandas尝试了许多代码迭代,但都没有成功。我觉得我最接近在熊猫中使用merge,join,concat,但是这些值从未在有意义的地方打印出来。
例如,类似的事情最终将数据从一个工作簿复制到另一个工作簿,但是在预期的任何地方都没有匹配。
df2 = df1.merge(df2, 'A', 'C')
df2 = pd.merge(df2,df1, on=['A'], how='left')
df2 = pd.concat([df1.set_index('A') for d in [df1, df2]], axis=1).reset_index()
如果有帮助,我的实际数据在每个工作簿中都有几百行。实际上只有两列按标题名称匹配。一个是我正在比较的列,另一个是我试图从一个工作簿写入另一个工作簿的数据。
我愿意使用任何可以轻松比较两个excel工作簿并根据指定列中的匹配值将数据彼此写入的方法。 任何帮助将不胜感激。