Python 将列作为时间进行分析
我有一个混合格式的时间栏,例如19:30和8:00 pm。我该怎么办 将其指定为统一的时间格式,即%H:%m或%H:%m%pPython 将列作为时间进行分析,python,pandas,datetime,Python,Pandas,Datetime,我有一个混合格式的时间栏,例如19:30和8:00 pm。我该怎么办 将其指定为统一的时间格式,即%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, dty
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
您可以使用pandas
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
但是当我执行pd.to_datetime(df.Timestamp.apply(lambda x:x.strftime(r'%H:%M:%S'))时,它会给我错误的
AttributeError:'str'对象没有属性'strftime'
您的括号是错误的。您首先需要解析到datetime,在到_datetime
的结束括号之后,添加apply
您是对的,df[“Timestamp”]=pd.to _datetime(df.Timestamp).apply(lambda x:x.strftime(r'%H:%M:%S')
。r'%H:%M:%S'
中的r
是什么?为什么需要它?原始字符串。它们不会对反斜杠或百分比字符施加特殊含义。