【发布时间】:2017-01-12 05:54:58
【问题描述】:
我有 2 个数据框,我想将它们相互比较,并根据比较在第一个新列中添加“真/假”。
我的数据类似于:
DF1:
cat sub-cat low high
3 3 1 208 223
4 3 1 224 350
8 4 1 223 244
9 4 1 245 350
13 5 1 232 252
14 5 1 253 350
DF2:
Cat Sub-Cat Rating
0 5 1 246
1 5 2 239
2 8 1 203
3 8 2 218
4 K 1 149
5 K 2 165
6 K 1 171
7 K 2 185
8 K 1 157
9 K 2 171
希望的结果是 DF2 有一个额外的列,其值为 True 或 False,这取决于基于 cat 和 sub-cat 的评级是否介于 low.min() 和 high.max() 之间,或者如果没有找到要比较的匹配项,则为 Null。
在这个问题上跑了太久,没有结果可言。
提前感谢您的帮助。
更新:
第一行看起来像:
Cat Sub-Cat Rating In-Spec
0 5 1 246 True
因为它落在最低最低价和最高最高价之间。
示例:DF1 中有两行 cat = 5 和 sub-cat = 2。我需要从这两行中获取最小低和最大高,然后检查 DF2 中第 0 行的评分是否在DF1 中两个匹配行的最小低和最大高
【问题讨论】:
-
请告诉我们您认为第一行的结果应该是什么。
-
当然,我很抱歉。
-
您要评估/比较哪些行?具有相同索引的那些或具有相同 cat 和 subcat 的那些?
-
猫/子猫是理想的比较。索引不重要
-
你的意思是评级在行的低和行的高之间吗?因为你说
low.min(),这对我来说意味着你的意思是整个专栏的最小值。你的意思是什么?