Python 检查日期差异,只保留某些ID

Python 检查日期差异,只保留某些ID,python,pandas,Python,Pandas,我正在试图找到没有日期低于某个时间戳的ID。换言之,我正试图找到高于某个时间戳的日期 下面的代码可以工作,但是有没有更好的方法来执行相同的过程 #pd.set_option('display.max_rows', 1000) import pandas as pd from datetime import date, timedelta last_y_days = pd.datetime.today() - timedelta(days=60) tmp_df = df[['ID','TIMEST

我正在试图找到没有日期低于某个时间戳的ID。换言之,我正试图找到高于某个时间戳的日期

下面的代码可以工作,但是有没有更好的方法来执行相同的过程

#pd.set_option('display.max_rows', 1000)
import pandas as pd
from datetime import date, timedelta
last_y_days = pd.datetime.today() - timedelta(days=60)
tmp_df = df[['ID','TIMESTAMP']].drop_duplicates()
tmp_df['result'] = tmp_df['TIMESTAMP'] < last_y_days
foobar = tmp_df.groupby('ID')['result'].unique().reset_index()
foobar[foobar['result'].apply(lambda x: True not in x)]
在以下位置与过滤的
ID
一起使用:

在以下位置与过滤的
ID
一起使用:


如果您能提供一些示例数据和所需的输出,您可能会很快得到答案。添加一些数据。让我知道如果你能提供一些样本数据和所需的输出,你可能会很快得到答案。添加了一些数据。让我知道你应该写一本书,里面有你所有的技巧和学习熊猫的方法你应该写一本书,里面有你所有的技巧和学习熊猫的方法
    ID  TIMESTAMP
1   1   2020-08-26
3   2   2020-04-18
4   2   2020-03-31
7   2   2020-01-10
10  2   2020-05-13
14  2   2020-02-24
16  2   2020-02-20
19  2   2020-08-03
34  3   2020-09-29
54  3   2020-08-14
55  3   2020-10-01
70  4   2020-01-25
72  4   2020-04-22
73  4   2020-09-01
75  4   2020-03-03
76  4   2020-07-21
79  4   2020-04-20
81  4   2020-04-28
83  4   2020-08-22
85  4   2020-06-03
df['TIMESTAMP'] = pd.to_datetime(df['TIMESTAMP'])

from datetime import date, timedelta
last_y_days = pd.datetime.today() - timedelta(days=60)
print (last_y_days)

ids = np.setdiff1d(df['ID'], df.loc[df['TIMESTAMP'] < last_y_days, 'ID'].unique()).tolist()
print (ids)
[1, 3]
    
m = (df['TIMESTAMP'] < last_y_days).groupby(df['ID']).any()

ids = m.index[~m].tolist()
print (ids)
[1, 3]