How to get minimum of each group for each day based on hour criteria

前端 未结 4 1500
北海茫月
北海茫月 2020-12-22 01:29

I have given two dataframes below for you to test

df = pd.DataFrame({
    \'subject_id\':[1,1,1,1,1,1,1,1,1,1,1],
    \'time_1\' :[\'2173-04-03 12:35:00\',\'         


        
4条回答
  •  情书的邮戳
    2020-12-22 02:16

    Try this

    from datetime import timedelta
    
    df1['time_1']= pd.to_datetime(df1['time_1'])
    df1['date'] = df1['time_1'].dt.date
    df1['t_d'] = df1.groupby(['date'])['time_1'].diff().shift(-1)
    mask= df1['t_d']>pd.Timedelta(1,'h')
    dfa=df1[mask]
    dfb=df1[~mask].groupby('date').first().reset_index()
    df_f = dfa.merge(dfb, how='outer')
    df_f.drop_duplicates(subset='date', keep='first', inplace=True)
    df_f.drop(['date','t_d'], axis=1, inplace=True)
    df_f.sort_values('time_1')
    

提交回复
热议问题