如何将列转换为以毫秒为单位的时间?

时间:2018-12-25 21:09:43

标签: python pandas

我有以下带有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'))

请告知我在这里做错了什么,以完成时间确认。 非常感谢您的帮助!

1 个答案:

答案 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