gpt4 book ai didi

python - 在之前的行中出现某个值后删除多行的最佳实践?

转载 作者:行者123 更新时间:2023-12-04 15:34:45 24 4
gpt4 key购买 nike

我的数据是这样的:

   Journey ID  Visit ID      Date  Conversion
0 1 1 20200101 1
1 1 2 20200102 1
2 1 3 20200103 0
3 2 4 20200104 0
4 2 5 20200105 1
5 3 6 20200106 1
6 3 7 20200107 0

我的目标是删除转化后旅程 ID 中出现的所有行。无论行的内容是什么,都在转换后的行之后。在此示例中,应删除索引为 1,2 和 6 的行。

我已经被困在这里一段时间了。我试过移动列和屏蔽条件,但它变得复杂并且没有真正起作用。

我需要一个安全、可扩展的解决方案来处理超过 200 万行的数据,该解决方案可以安全运行且易于验证。

您可以用这个重现示例数据集:

d = {'Journey ID': [1,1,1,2,2,3,3],
'Visit ID': [1,2,3,4,5,6,7],
'Date': [20200101,20200102,20200103, 20200104, 20200105,20200106,20200107],
'Conversion': [1,1,0,0,1,1,0]}
data = pd.DataFrame(data = d)

最佳答案

IIUC,您可以尝试使用 cumsumgroupby:

out = data[data['Conversion'] == data.groupby('Journey ID')['Conversion'].cumsum()]

   Journey ID  Visit ID  Date+Time  Conversion
0 1 1 date_time 1
3 2 4 date_time 0
4 2 5 date_time 1
5 3 6 date_time 1

这是可视化的逻辑:

   Journey ID  Visit ID      Date  Conversion  cumsum_Journey  delete
0 1 1 20200101 1 1 False
1 1 2 20200102 1 2 True
2 1 3 20200103 0 2 True
3 2 4 20200104 0 0 False
4 2 5 20200105 1 1 False
5 3 6 20200106 1 1 False
6 3 7 20200107 0 1 True

关于python - 在之前的行中出现某个值后删除多行的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60125669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com