У меня есть CSV-файл с датой и временем.Я хочу дать определенный интервал времени (60 минут) между временным диапазоном (время начала и время окончания).Я написал код с датой.Но это дает мне ошибку. Количество образцов, -5, должно быть неотрицательным.Затем я проверил с отдельным файлом CSV с меньшим количеством данных.Затем я обнаружил, что у меня есть время, как 9:53, 10:20, 11: 42 .... Затем, когда я делю, чтобы найти num_periods, тогда это дает мне ошибку.Например, диапазон дат для взятия, например, 2018/8/6, время начала 6:00. Время окончания 2018/8/6 - 23:52, затем время между 7:00, 8: 52,10: 42 и так далее.после этого на следующий день у меня есть такой период времени.Поэтому, когда я пытался найти num_periods, это выдает мне эту ошибку.Я хочу указать время между этим time_range (start_time + time_interval (3600 в секундах (60 минут)) между time_range) Может кто-нибудь дать мне решение для этого?мой код:
time_interval = 3600
date_array = []
date_array.append(pd.to_datetime(data['date'][0]).date())
start_time = []
end_time = []
temp_date = pd.to_datetime(data['date'][0]).date()
start_time.append(pd.to_datetime(data['time'][0], format='%H:%M:%S').time())
for i in range(len(data['date'])):
cur_date = pd.to_datetime(data['date'][i]).date()
if( cur_date > temp_date):
end_time.append(pd.to_datetime(data['time'][i-1], format='%H:%M:%S').time())
start_time.append(pd.to_datetime(data['time'][i], format='%H:%M:%S').time())
date_array.append(cur_date)
temp_date = cur_date
end_time.append(pd.to_datetime(data['time'][len(data['date'])-1], format='%H:%M:%S').time())
datetime_array = []
for i in range(len(date_array)):
s_time = datetime.datetime.combine(date_array[i],start_time[i])
e_time = datetime.datetime.combine(date_array[i], end_time[i])
timediff = (e_time - s_time)
num_periods = int(timediff.total_seconds()/time_interval) +1
time_list = pd.date_range(start=s_time, end = e_time, periods=num_periods ).to_pydatetime()
datetime_array.extend(time_list)
ошибка:
подмножество моего CSV-файла