Python 在各组的熊猫中查找前/后decessor

Python 在各组的熊猫中查找前/后decessor,python,pandas,Python,Pandas,为了减少复杂性,我修改了整个帖子: 那么,我想要实现什么: 对于具有给定开始日期和结束日期的活动列表,我想返回上一个活动。Previous表示活动在前一个活动的结束日之后开始。但是,如果之前有几个营地,我想返回相同类型的活动。这应该针对我的每个活动进行(通常,我会有分组数据,(想想项目/活动对,其中一个营地有几个项目,我对单个项目的上一个活动感兴趣) 考虑以下数据 Campaign | StartDay | EndDay | Type ---------|----------|--------|

为了减少复杂性,我修改了整个帖子:

那么,我想要实现什么: 对于具有给定开始日期和结束日期的活动列表,我想返回上一个活动。Previous表示活动在前一个活动的结束日之后开始。但是,如果之前有几个营地,我想返回相同类型的活动。这应该针对我的每个活动进行(通常,我会有分组数据,(想想项目/活动对,其中一个营地有几个项目,我对单个项目的上一个活动感兴趣)

考虑以下数据

Campaign | StartDay | EndDay | Type
---------|----------|--------|------
    1    |    1     |   10   |  1
    2    |    5     |   15   |  1
    3    |    7     |   15   |  2
    4    |   11     |   20   |  1
    5    |   16     |   25   |  2
因此,在这种情况下,所需的输出如下

Campaign | PreviousCampaign
---------|-----------------
    1    |     NAN
    2    |     NAN
    3    |     NAN
    4    |      1
    5    |      3
如果第一个条目消失了,就可以了。注意,由于类型条件,5的前一个条目是3

我能够通过活动将表自身合并,查询正确的行和几个步骤来确保满足costraint类型。 如果没有类型约束,这会更容易一些


然而,在研究汤姆·奥格斯普格(tom augspurger)的《现代熊猫》(modern pandas)时,我有一种感觉,旋转、堆叠、融化或组合应该是有效的。但我还没有弄清楚如何工作。

你能展示你想要的输出吗?更新了它,并更改了第2项Slighlt的示例。想要的输出有帮助,但仍然很难遵循你想要的逻辑。是“参考活动”在“下一个公司计划”专栏中你想要什么?如果你能解释你为什么要这样做,这可能会更清楚。嘿,我重写并缩短了这个例子。我希望现在更多地关注基本部分。更清楚。但如果之前有两个相同类型的活动,该怎么办?