根据两个数据帧中匹配的行和列来识别值

Identify value based on matching Rows and Columns across two Dataframes

我是 python 的新手,我有两个数据框...我正在尝试将“名称”也就是数据框 1 的列与数据框 2 的行相匹配并收集值2022 年有希望的输出看起来像 Dataframe 3...我尝试查看其他查询但没有找到任何帮助,任何帮助将不胜感激!

Dataframe 1 - Money          Dataframe 2             Dataframe 3
Date Alex Rob Kev  Ben       Name                    Name   Amount
2022  29  45  65   12        James                   James  
2021  11  32  11   19        Alex                    Alex   29
2019  45  12  22   76        Carl                    Carl 
                             Rob                     Rob    45
                             Kev                     Kev    65

有很多不同的方法可以实现这一点。

一个选项是使用 map:

s = df1.set_index('Date').loc[2022]

df2['Amount'] = df2['Name'].map(s)

输出:

    Name  Amount
0  James     NaN
1   Alex    29.0
2   Carl     NaN
3    Rob    45.0
4    Kev    65.0

另一种选择是使用 merge:

s = df1.set_index('Date').loc[2022]

df3 = df2.merge(s.rename('Amount'), left_on='Name', right_index=True, how='left')