我有一个如下所示的数据帧:
ID1 ID2 Date
1 2 01/01/2018
1 2 03/01/2018
1 2 04/05/2018
2 1 06/06/2018
1 2 08/06/2018
3 4 09/07/2018
等等
我需要做的是标记ID1中的ID第一次出现在ID2中。在上面的例子中
ID1 ID2 Date Flag
1 2 01/01/2018
1 2 03/01/2018
1 2 04/05/2018
2 1 06/06/2018
1 2 08/06/2018 Y
3 4 09/07/2018
我使用以下代码告诉我ID1是否出现在ID2中:
ID2List= df['ID2'].tolist()
ID2List= list(set(IDList)) # dedupe list
df['ID1 is in ID2List'] = np.where(df[ID1].isin(ID2List), 'Yes', 'No')
但这只告诉我,有一种情况,ID1出现在ID2的某个点上,而不是第一次出现的事件
有什么帮助吗
一种想法是使用
next
和生成器表达式来计算ID1
中匹配项的索引。然后与索引进行比较,并使用argmax
得到第一个True
值的索引:相关问题 更多 >
编程相关推荐