Skip to content Skip to sidebar Skip to footer

How Do I Group Max And Min Timestamp On Pandas Dataframe

I want to group a dataset and return the maximum and minimum timestamp. Here's my data id timestamp 1 2017-09-17 10:09:01 2 2017-10-02 01:13:15 1 2017-09-17 10:53:07 1 201

Solution 1:

I think need agg:

df = df.groupby('id')['timestamp'].agg(['min','max']).reset_index()
print (df)
   id                 min                 max
0   1 2017-09-17 10:09:01 2017-09-17 10:53:07
1   2 2017-09-12 21:59:40 2017-10-02 01:13:15

Or a bit modify your solution (should be faster):

data = df.sort_values('timestamp')
data1 = data.drop_duplicates(['id'], keep='last').set_index('id')
data2 = data.drop_duplicates(['id'], keep='first').set_index('id')

df = pd.concat([data1['timestamp'], data2['timestamp']],keys=('max','min'), axis=1)

print (df)
                   max                 min
id                                        
1  2017-09-17 10:53:07 2017-09-17 10:09:01
2  2017-10-02 01:13:15 2017-09-12 21:59:40

Post a Comment for "How Do I Group Max And Min Timestamp On Pandas Dataframe"