我要过滤N个月内没有连续活动的帐户。
示例:
a100000001 | 2019-01-31 | NaN
| 2019-02-28 | 40
| 2019-03-31 | 30
| 2019-04-30 | 50
-----------|------------|-----
a100000002 | 2019-01-31 | NaN
| 2019-02-28 | NaN
| 2019-03-31 | 20
| 2019-04-30 | NaN
-----------|------------|-----
... | |
连续N = 3个月的结果如下:
a100000001 | 2019-01-31 | NaN
| 2019-02-28 | 40
| 2019-03-31 | 30
| 2019-04-30 | 50
-----------|------------|-----
... | |
忽略了帐户“ a100000002”。
我尝试了df[df.rolling(3)['amount'].min().notna()]
,但它也从所需的帐户中删除了NaN行。
答案 0 :(得分:0)
类似的事情应该起作用:
df.groupby('account').filter(lambda g: (g['date'].dt.month.diff() <= n).all())