2017-02-22 19 views
1

У меня есть колонка времени в смешанном формате, например. 19:30 и 20:00. Как мне назначить его как единый формат времени, т. Е.% H:% m или% H:% m% p?Разбирать колонку как время в пандах

df["Timestamp"].head(10) 


0  10:00 
1 10:30 AM 
2  11:00 
3 11:30 AM 
4  12:00 
5 12:30 PM 
6  13:00 
7  1:30 PM 
8  14:00 
9  14:30 
Name: Timestamp, dtype: object 

ответ

2

Вы можете использовать панд parse_datetime:

In [57]: pd.to_datetime(pd.Series(['10:00', '9:00 AM', '10:20 PM'])).apply(lambda x: x.strftime(r'%H:%M:%S')) 
Out[57]: 
0 10:00:00 
1 09:00:00 
2 22:20:00 
+0

но когда я делаю 'pd.to_datetime (df.Timestamp.apply (лямбда х: x.strftime (г '% H:% M:% S '))) ', это дает мне ошибку' AttributeError:' str 'объект не имеет атрибута' strftime'' –

+0

Ваши скобки ошибочны. Сначала нужно разобрать datetime и после закрывающей скобки 'to_datetime', добавить' apply' – languitar

+0

. Вы были правы, 'df [" Timestamp "] = pd.to_datetime (df.Timestamp) .apply (lambda x: x .strftime (r '% H:% M:% S')) 'работал. Что такое 'r' в' r '% H:% M:% S' 'и зачем это необходимо? –