根据两个数据帧中匹配的行和列来识别值
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')
我是 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')