【发布时间】:2022-01-23 23:54:58
【问题描述】:
假设我有以下数据框:
import pandas as pd
d = {'id': [1, 2, 3, 3, 3, 2, 2, 1, 2, 3, 2, 3],
'date': [1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4],
'product': ['a', 'a', 'b', 'a', 'b', 'a', 'b', 'c', 'b', 'c', 'c', 'c']}
df = pd.DataFrame(d)
我想保留每个 ID 在他们购买产品“b”当天和之后的所有数据,并在他们购买产品“b”之前删除所有数据。 ID 1 没有数据,因为他们没有购买产品,ID 2 有第 3 天和第 4 天的数据,ID 3 有第 1-4 天的数据。
我知道我可以按 id 分组,然后从各个组中过滤行,但我不知道如何根据组使过滤器动态化。我试过循环遍历这些组,但速度很慢(现在我有 19,000 个 ID,但它只会随着我继续项目而增长)。
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
能否请您展示您的预期输出示例?这将有助于可视化很多。谢谢你:)
标签: python pandas dataframe filter