io non sono sicuro perché si vuole fare questo, in primo luogo, ma se si davvero deve ...
df = pd.DataFrame({'my_timestamp': pd.date_range('2016-1-1 15:00', periods=5)})
>>> df
my_timestamp
0 2016-01-01 15:00:00
1 2016-01-02 15:00:00
2 2016-01-03 15:00:00
3 2016-01-04 15:00:00
4 2016-01-05 15:00:00
df['new_date'] = [d.date() for d in df['my_timestamp']]
df['new_time'] = [d.time() for d in df['my_timestamp']]
>>> df
my_timestamp new_date new_time
0 2016-01-01 15:00:00 2016-01-01 15:00:00
1 2016-01-02 15:00:00 2016-01-02 15:00:00
2 2016-01-03 15:00:00 2016-01-03 15:00:00
3 2016-01-04 15:00:00 2016-01-04 15:00:00
4 2016-01-05 15:00:00 2016-01-05 15:00:00
La conversione in CST è più complicata. Presumo che i timestamp correnti siano "inconsapevoli", cioè non hanno un fuso orario allegato? In caso contrario, come ti aspetteresti di convertirli?
Per ulteriori dettagli:
https://docs.python.org/2/library/datetime.html
How to make an unaware datetime timezone aware in python
EDIT
Un metodo alternativo che loop sola volta tutti i timestamp anziché due:
new_dates, new_times = zip(*[(d.date(), d.time()) for d in df['my_timestamp']])
df = df.assign(new_date=new_dates, new_time=new_times)
Come su ''2016-02-22 14: 59: 44.561776'.split()'? –
Perché mai vorresti farlo?!? – Alexander