我想过滤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 行。
这样的事情应该可以工作:
df.groupby('account').filter(lambda g: (g['date'].dt.month.diff() <= n).all())