我有以下带有2列的txt文件:
Date, Time
2013/1/4, 07:00:00.0
2013/1/4, 07:00:00.1
2013/1/4, 07:00:00.2
2013/1/4, 07:00:00.3
2013/1/4, 07:00:00.4
2013/1/4, 07:00:00.5
2013/1/4, 07:00:00.6
2013/1/4, 07:00:00.7
2013/1/4, 07:00:00.8
2013/1/4, 07:00:00.9
2013/1/4, 07:00:00.10
2013/1/4, 07:00:00.11
2013/1/4, 07:00:00.12
2013/1/4, 07:00:00.13
2013/1/4, 07:00:00.14
2013/1/4, 07:00:00.15
2013/1/4, 07:00:00.16
我需要将对象转换为时间格式。 对于使用的“日期”(它可以正常工作):
df['Date'] = pd.to_datetime(df['Date'])
对于我过去一直关注的“时间”(全部失败,是的,我试图搜索并阅读熊猫文档)
df['Time']= (pd.to_datetime(df['Time'].str.strip(), format='%H:%M:%S:%F'))
df['Time'] = datetime.time(df['Time'], '%H:%M:%S,%f')
df['Time'] = datetime.datetime.strptime("%H:%M:%S,%f").timestamp()
甚至尝试过:
df['DateTime'] = pd.to_datetime(df.pop('Date')) + pd.to_timedelta(df.pop('Time'))
请告知我在这里做错了什么,以完成时间确认。 非常感谢您的帮助!
答案 0 :(得分:1)
将列串联为字符串,将它们转换为日期/时间对象,然后进一步操作(如果需要)可能更简单。
为了您的数据,以下对我有用:
pd.to_datetime(df.Date + ' ' + df.Time)
(请注意,在您的情况下,df.Date + ' ' + df.Time
以pandas可以理解的格式制作一个字符串系列。)
要获取小时,例如:
df['foo'] = pd.to_datetime(df.Date + ' ' + df.Time)
df.foo.dt.hour