首页 > 解决方案 > 条目在一年内至少两个不同的月份出现在每个索引中

问题描述

索引日期(dd.mm.yy)

A 1.1.20
A 1.2.20
B 1.1.20
B 5.5.21
C 1.1.20
C 10.1.20
D 1.1.20
D 10.1.20
D 10.5.20

我想看看在一年内至少两个不同的月份中每个索引是否出现一个条目

所以对于索引 A ,D 的答案是 True 而对于 B, C 是 False 预期输出:

A 真
B 假
C 假
D 真

我可以通过使用 Grouper 轻松查看它是否出现在至少两个不同的月(或年)内

df.groupby([index, pd.Grouper(freq='M', key='date]).agg('count')

看看计数是否 > 0

但是我怎样才能轻松地检查这两个条件是否适用?

我尝试创建自己的 agg 函数或使用 Grouper。

标签: pythonpandas

解决方案


df_per_month = pd.DataFrame.from_dict(df.groupby([index, df.date.dt.year, df.date.dt.month]).groups.keys())
df_max_entries_in_a_year = df_per_month.groupby([0,1]).agg('count').reset_index().groupby([0])[2].agg('max')

推荐阅读