Sal*_*lih 4 python dataframe pandas
我有两个这样的数据框:
DATE MAX_AMOUNT MIN_AMOUNT MAX_DAY MIN_DAY RATE
01/09/2022 20 15 10 5 0.01
01/09/2022 25 20 15 10 0.02
03/09/2022 30 10 5 3 0.03
03/09/2022 40 30 20 5 0.04
04/09/2022 10 5 10 1 0.05
ID DATE AMOUNT DAY
1 01/09/2022 18 7
2 01/09/2022 22 11
3 01/09/2022 30 20
4 03/09/2022 35 10
5 04/09/2022 35 10
Run Code Online (Sandbox Code Playgroud)
我想根据日期将 RATE 值带到第二个 df 中。此外,相关日期中的 AMOUNT 和 DAY 值必须在适当的范围内(MAX_AMOUNT 和 MIN_AMOUNT、MAX_DAY 和 MIN_DAY)。
期望的输出如下:
ID DATE AMOUNT DAY RATE
1 01/09/2022 18 7 0.01
2 01/09/2022 22 11 0.02
3 01/09/2022 30 20
4 03/09/2022 35 10 0.04
5 04/09/2022 35 10
Run Code Online (Sandbox Code Playgroud)
你能帮我解决这个问题吗?
# Merge df1 and df2 using your custom condition
match = df1.merge(df2, on="DATE").query("MIN_AMOUNT <= AMOUNT <= MAX_AMOUNT and MIN_DAY <= DAY <= MAX_DAY")
# Now join any matching rate back to df2
result = df2.merge(match[["ID", "RATE"]], on="ID", how="left")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |