使用日期时间将时隙从字符串转换为时间

时间:2019-04-13 19:45:22

标签: python python-3.x python-datetime strptime

我需要使用matplotlib绘制广告系列数据。需要比较同一天运行的不同广告活动的发送时间,因此只有HH:MM很重要,这在单独的栏中提供。 我在csv中接收到数据,其中一栏显示时间,不幸的是,如果它是在09:45处发送的,则其名称为9:45

['9:05', '9:20', '9:25', '9:35', '9:40', '10:17', '10:22'...]

有人可以给我提示吗?我使用的是Python 3,是真正的初学者,因此相信soemone可以指出我的明显错误,并引导我找到正确的解决方案。谢谢

import pandas
from datetime import datetime
from datetime import time

file_name = r'''C:\\Users\\testing.csv''' # name of your excel file
df1 = pandas.read_csv(file_name, encoding='utf-8')

df_Campaign1 = df1[df1['DataSource ID'].str.contains('Campaign1')==True]
Campaign1_times = df_Campaign1['time sent'].tolist()

Campaign1_times = [datetime.strptime(slot,"%H:%M") for slot in Campaign1_times]

print(Campaign1_times)

我希望收到09:05等日期时间格式,因此我可以在时间轴上相互绘制多个广告系列的结果,但不幸的是输出是:

[datetime.datetime(1900, 1, 1, 9, 5), datetime.datetime(1900, 1, 1, 9, 20), datetime.datetime(1900, 1, 1, 9, 25), datetime.datetime(1900, 1, 1, 9, 35), datetime.datetime(1900, 1, 1, 9, 40), datetime.datetime(1900, 1, 1, 10, 17)...]

1 个答案:

答案 0 :(得分:0)

Thi可能不是最佳解决方案,但是以下代码以HH:MM:SS格式返回了时间。这是您需要的吗?

import datetime
time_ = str(datetime.datetime.strptime('9:30', '%H:%M').time())
print(time_)

该示例返回以下字符串:'09:30:00'