Я использую приведенную ниже логику c для вычисления среднего значения времени в списке python.
from datetime import datetime,timedelta
def entry_rate(entry_timestamps):
entry_deltas = [d1-d2 for d1,
d2 in zip(entry_timestamps[1:], entry_timestamps[:-1])]
average_timedelta = (sum(entry_deltas, timedelta(
0)) / len(entry_deltas)).total_seconds() if len(entry_deltas) != 0 else -1.0
return average_timedelta
Вот входные данные для функции: -
entry_timestamps = [datetime.datetime(2019, 11, 13, 7, 36, 21), datetime.datetime(2019, 11, 13, 7, 40, 53), datetime.datetime(2019, 11, 13, 7, 45, 25), datetime.datetime(2019, 11, 13, 7, 49, 58), datetime.datetime(2019, 11, 13, 7, 54, 30), datetime.datetime(2019, 11, 13, 7, 58, 32), datetime.datetime(2019, 11, 13, 8, 2, 34), datetime.datetime(2019, 11, 13, 8, 6, 36), datetime.datetime(2019, 11, 13, 8, 10, 38), datetime.datetime(2019, 11, 13, 8, 14, 40), datetime.datetime(2019, 11, 13, 8, 18, 42), datetime.datetime(2019, 11, 13, 8, 22, 44), datetime.datetime(2019, 11, 13, 8, 26, 46), datetime.datetime(2019, 11, 13, 8, 29, 18)]
Однако я получаю следующую ошибку.
в prepare_llog (llog_pd) 288 289 result_df ['entry_rate'] = \ -> 290 result_df ['entry_timestamps']. Apply (lambda x: compute_entry_rate (x)) 291 292
~ / miniconda3 / envs / jupyter_21f8c25de0 / lib / python3 .6 / site-packages / pandas / core / series.py в приложении (self, fun c, convert_dtype, args, ** kwds) 4043
else: 4044 values = self.astype (object) .values -> 4045 mapped = lib.map_infer (values, f, convert = convert_dtype) 4046 4047 если len (сопоставленный) и isinstance (сопоставлено [0], серия):
pandas / _libs / lib.pyx в pandas ._ libs.lib.map_infer ()
в (x) 288 289 result_df [' entry_rate '] = \ -> 290 result_df [' entry_timestamps ']. apply (лямбда-x: compute_entry_rate (x)) 291 292
в compute_entry_rate (entry_timestamps) 49 50 Среднее_время_дельта = (сумма ( entry_deltas, timedelta (---> 51 0)) / len (entry_deltas)). total_seconds () если len (entry_deltas)! = 0 иначе -1.0 52 возвращать Average_timedelta 53
TypeError: _ () занимает 1 Позиционный аргумент, но 2 были даны
Может кто-нибудь предложить, пожалуйста, как это исправить?