我有一个DataFrame,它看起来像这样:-
ID | act
1 A
1 B
1 C
1 D
2 A
2 B
3 A
3 C
我正在尝试获取IDs
,其中一个活动act1
后面跟着另一个act2
。例如,A
之后跟着B
的情况。在这种情况下,我想获取m1n 5o1p作为id。我如何以矢量化的方式来处理这个问题?
编辑:-预期输出:对于上面定义的示例df,输出应该是所有ID的列表/序列,其中A
后面紧跟B
IDs
1
2
2条答案
按热度按时间mbyulnm01#
这是一个简单的矢量化方法!
输出:
另一种写法可能更清晰:
Numpy使筛选一个或多个布尔条件变得容易。结果向量用于过滤 Dataframe 。
44u64gxh2#
这里有一种方法:groupby,而不是sort,因为我们需要根据当前的 Dataframe 结构,在A之后立即跟踪B。
使用str.cat的下一个聚合
检查A、B是否存在
获取索引
作为列表传递
另一种方法是使用移位函数和滤波: