Приведенный ниже код выдает df:
import pandas as pd
import random
from datetime import timedelta
def randomTime():
rtime = int(random.random()*86400)
hours = int(rtime/3600)
minutes = int((rtime - hours*3600)/60)
seconds = rtime - hours*3600 - minutes*60
time_string = '%02d:%02d:%02d' % (hours, minutes, seconds)
return time_string
time = [randomTime() for _ in range(8)]
k = 5
N = 8
d = ({'Time' : (time),
'Events' : ['ABC','DEF','GHI','JKL','ABC','DEF','GHI','JKL'],
'Number1' : ['xx','xx',1,'xx','xx','xx',2,'xx'],
'Number2' : ['xx',1,'xx',1,'xx',2,'xx',2]})
df = pd.DataFrame(data=d)
Я пытаюсь добавить время к выбранным строкам временных меток в пределах df. Я пытаюсь изменить последние 4 временные метки, чтобы добавить 3 часа. На данный момент он производит струны.
df.iloc[4:8,3] = pd.TimedeltaIndex(df.iloc[4:8,3]) + timedelta(hours=3)
print(df)
Output:
Events Number1 Number2 Time
0 ABC xx xx 14:25:51
1 DEF xx 1 10:02:32
2 GHI 1 xx 01:23:32
3 JKL xx 1 07:27:42
4 ABC xx xx 74325000000000
5 DEF xx 2 38992000000000
6 GHI 2 xx 19158000000000
7 JKL xx 2 26746000000000
Я не уверен, что это потому, что дата добавляется в расчет здесь? Я не уверен, что делаю не так.