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"