Python 检查日期差异,只保留某些ID
我正在试图找到没有日期低于某个时间戳的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
#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]