Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

getting unique date from python dataframe

My dataframe has dates in format: dd-mm-yy hh:mm:ss

E.g

15-14-2016 08:05:10 
15-14-2016 08:15:30 
15-14-2016 10:45:22 
18-14-2016 06:23:10 
18-14-2016 07:37:30 
18-14-2016 12:48:22

There are around 1000 rows and

I used below code to get unique dates

print pd.unique((df.Date).dt.strftime('%d-%m-%y'))

but my output seems to be 2 lists instead of just one:

['15-04-16' '18-04-16' '19-04-16' '20-04-16' '21-04-16' '22-04-16']    
['15-04-16' '18-04-16' '19-04-16' '20-04-16' '21-04-16' '22-04-16']

Can anyone help

like image 219
Master_Roshy Avatar asked Oct 22 '25 09:10

Master_Roshy


2 Answers

I think you can use dt.strftime with unique if you need convert dates to strings:

print df

                 Date
0 2016-12-15 08:05:10
1 2016-12-15 08:15:30
2 2016-12-15 10:45:22
3 2016-12-18 06:23:10
4 2016-12-18 07:37:30
5 2016-12-18 12:48:22

#if dtype of column date Date is not datetime
df['Date'] = pd.to_datetime(df['Date'])    

print df.Date.dt.strftime('%d-%m-%y').unique()
['15-12-16' '18-12-16']

If you need unique dates, use dt.date:

print df.Date.dt.date.unique()
[datetime.date(2016, 12, 15) datetime.date(2016, 12, 18)]
like image 98
jezrael Avatar answered Oct 24 '25 00:10

jezrael


You can use numpy.unique:

import numpy as np

df
Out[20]: 
                 date
0 2016-04-15 08:05:10
1 2016-04-15 08:15:30
2 2016-04-15 10:45:22
3 2016-04-18 06:23:10
4 2016-04-18 07:37:30
5 2016-04-18 12:48:22
6 2016-04-18 12:48:22


np.unique(df["date"].dt.strftime('%d-%m-%y'))
Out[22]: array(['15-04-16', '18-04-16'], dtype=object)

Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!