У меня есть датафрейм df
следующим образом:
loc end_time ts file
TPHD 2019-06-03 16:45:30 43619.4375 trial.csv
TPCL 2019-06-03 16:30:00 43619.5520 trial.csv
TPHD 2019-06-03 16:15:30 43619.6774 trial.csv
TPBL 2019-06-03 16:15:30 43619.4479 trial.csv
TPBL 2019-06-03 14:43:45 43619.6982 mgrflash.csv
TPCL 2019-06-03 13:15:00 43619.4375 mgrflash.csv
TPCL 2019-06-03 11:15:30 43619.6875 mgrflash.csv
TPCL 2019-06-03 10:45:00 43619.6137 trial.csv
TPBL 2019-06-03 10:30:00 43619.6774 mgrflash.csv
TPHD 2019-06-03 10:30:00 43619.4690 mgrflash.csv
Цель: я хочу найти разницу во времени между end_time
и указанным временем, например datetime.datetime.now()
, для каждого местоположения и файла. Для этого я попытался сделать следующее:
df_test = df.drop_duplicates(['loc','file'])
location = ['TPCL','TPBL','TPHD']
now_dt = dt.now()
for i in location:
if i in df_test['loc'].tolist():
t_update_loc = df_test.loc[df_test['loc']==i,'end_time']
d = []
for j in t_update_loc.tolist():
diff = now_dt - j
d.append(diff)
Приведенный выше код не показывает правильный результат. На самом деле он собирает только TPHD
значений. Вывод вышеприведенного приведен ниже:
_libs.tslibs.timedeltas.Timedelta 1 140 days 02:55:06.056170
_libs.tslibs.timedeltas.Timedelta 1 140 days 09:10:36.056170
В идеале я хочу следующий кадр данных:
loc time_stamp
TPCL 2019-06-03 16:30:00
TPBL 2019-06-03 16:15:30
TPHD 2019-06-03 16:45:30
Как получить указанный выше кадр данных?