使用 Pandas 查找连续活动超过 N 个月的帐户



我想过滤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())

最新更新