Nie jestem pewien, dlaczego chcesz to zrobić w pierwszej kolejności, ale jeśli naprawdę musi ...
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
Konwersja do CST jest trudniejsza. Zakładam, że obecne sygnatury czasowe są "nieświadome", tj. Nie mają załączonej strefy czasowej? Jeśli nie, jak można by je przekonwertować?
Szczegółowe informacje:
https://docs.python.org/2/library/datetime.html
How to make an unaware datetime timezone aware in python
EDIT
Alternatywny sposób, że tylko jeden raz po drugiej stronie pętelki do znaczników czasu zamiast dwukrotnego:
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)
Co powiedzieliśmy na '' 2016-02-22 14: 59: 44.561776'.split() '? –
Dlaczego, na Boga, chcesz to zrobić?!? – Alexander