I have dataframe with 200000 rows. Each record has a timestamp, and I need to group them by date. So I do:
In [67]: df['result_date'][0]
Out[67]: Timestamp('2017-09-01 09:12:00')
In [68]: %timeit df['result_day'] = df['result_date'].apply(lambda x: str(x.date()))
2.26 s ± 73.3 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
In [69]: df['result_day'][0]
Out[69]: '2017-09-01'
or
In [70]: %timeit df['result_day'] = df['result_date'].apply(lambda x: x.date())
2.05 s ± 213 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
In [71]: df['result_day'][0]
Out[71]: datetime.date(2017, 9, 1)
anyway, it takes ~2 seconds. Can I do it faster?
UPD:
In [75]: df.shape
Out[75]: (228217, 18)
In [77]: %timeit df['result_date'].dt.date
1.44 s ± 42.1 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)