猿问

Python 数据框:根据 groupby 条件过滤数据框

我有一个如下所示的数据框:


ID    date          

1     01.01.2017        

1     01.01.2017        

1     01.04.2017        

2     01.01.2017        

2     01.01.2017        

2     01.02.2017       

我想要的是过滤日期差异的相关最小值和最大值为 3 天的 ID。最终的数据帧应该是这样的,因为只有 id 1 匹配条件:


ID    date          

1     01.01.2017        

1     01.01.2017        

1     01.04.2017 

谢谢你。


喵喔喔
浏览 257回答 2
2回答

慕森卡

您可以使用Groupby.filter自定义lambda函数来检查最大日期和最小值之间的差异是否为3天数:d = datetime.timedelta(days=3)df.groupby('ID').date.filter(lambda x: (x.max() - x.min()) == d)ID1   2017-01-011   2017-01-011   2017-01-04Name: date, dtype: datetime64[ns]
随时随地看视频慕课网APP

相关分类

Python
我要回答