【发布时间】:2015-12-24 15:15:02
【问题描述】:
我有两个数据框。我的第一个数据框有两列,我想用它们来创建条件并从第二个数据框返回一个值。
df1 = (['a', 'a', 'b', 'c'], [0.4, 0.9, 0.1, 0.6])
df2 = (['a', 'a', 'b', 'b', 'c', 'c'], [0.2, 0.6, 0.3, 0.8, 0.1, 0.4],
[500, 200, 900, 400, 250, 800])
对于 df1 中的每一行,我想通过两列数据查找 df2。第一个条件是将 df1 中的字母与 df2 匹配。第二个条件是查找 df2 中数字大于 df1 的第一个数字行。如果没有更大的数字,则取 df2 中与该字母匹配的第一行。
我的目标输出是:
- df1 row[0] = 500 # 'a' 匹配 'a' & 0.4 大于 0.2
- df1 row[1] = 200 # 'a' 匹配 'a' & 0.9 大于 0.6
- df1 row[2] = 900 # 'b' 匹配 'b' & 没有行大于 0.1 所以返回第一个 'b' 行
- df1 row[3] = 800 # 'c' 匹配 'c' & 0.6 大于 0.4
对于我的问题的任何不良格式表示歉意,请提供有关发布的任何建议(这是我的第一个)。
非常感谢!
【问题讨论】: