如何基于GROUP_REH_VALUE与target的关系生成first_date列?
问题
给定数据集
GROUP_NAV_DATE GROUP_REH_VALUE target 0 2018/11/29 1 1.06 1 2018/11/30 1.0029 1.063074 2 2018/12/3 1.03 1.0918 3 2018/12/4 1.032 1.09392 4 2018/12/5 1.0313 1.093178 5 2020/12/6 1.034 1.09604 6 2020/12/8 1.062 1.12572 7 2020/12/9 1.07 1.1342 8 2020/12/10 1 1.06 9 2020/12/11 0.99 1.0494 10 2020/12/12 0.96 1.0176 11 2020/12/13 1.062 1.12572
目标
- 创建
first_date列,取值来自GROUP_NAV_DATE。逻辑为:对每行,找到晚于该行日期的记录中,第一个满足GROUP_REH_VALUE小于该行target值的记录对应的GROUP_NAV_DATE。 - 示例:索引0的
GROUP_REH_VALUE为1,匹配到的第一个日期是2020/12/8;索引9的匹配日期是2020/12/13而非2020/12/8。 - 注意:每行的
target值计算公式为1.06 * GROUP_REH_VALUE。
预期结果
GROUP_NAV_DATE GROUP_REH_VALUE target first_date 0 2018/11/29 1 1.06 2020/12/8 1 2018/11/30 1.0029 1.063074 2020/12/9 2 2018/12/3 1.03 1.0918 NA 3 2018/12/4 1.032 1.09392 NA 4 2018/12/5 1.0313 1.093178 NA 5 2020/12/6 1.034 1.09604 NA 6 2020/12/8 1.062 1.12572 NA 7 2020/12/9 1.07 1.1342 NA 8 2020/12/10 1 1.06 2020/12/13 9 2020/12/11 0.99 1.0494 2020/12/13 10 2020/12/12 0.96 1.0176 2020/12/13 11 2020/12/13 1.062 1.12572 NA
尝试过的方法
- 尝试使用
rolling和idxmin方法,但由于依赖其他列,无法得到正确结果,寻求解决方案。
内容的提问来源于stack exchange,提问作者Jack
相关产品推荐
相关产品推荐

