преобразование временных интервалов из строки в время с использованием даты и времени - PullRequest
0 голосов
/ 13 апреля 2019

Мне нужно нанести данные кампании с помощью 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 голосов
/ 13 апреля 2019

Возможно, это далеко не лучшее решение, но следующий код вернул время в формате ЧЧ: ММ: СС. Это то, что тебе надо?

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

В примере возвращается следующая строка: '09: 30: 00 '

...