У меня есть следующая функция
condition = (df_sensor_data['Indgang 0103 Duplicate'] == 1) & (df_sensor_data['Indgang 0102 Duplicate'] == 0)
condition_2 = (df_sensor_data['Indgang 0103 Duplicate'] == 0) & (df_sensor_data['Indgang 0102 Duplicate'] >= 15)
def asdf(sensor_data, condition):
f = sensor_data.loc[condition]
filtered_data = pd.DataFrame()
for _, row in f.iterrows():
start = row['Date']
stop = row['Date'].to_pydatetime() + dt.timedelta(minutes=20)
condition = sensor_data['Date'].between(start, stop, inclusive=True)
new_data = sensor_data.loc[condition, :].copy()
filtered_data = pd.concat([filtered_data, new_data], sort=True)
filtered_data = filtered_data.sort_values('Date').reset_index(drop=True)
aggregation = { 'JOBNUM': 'first', 'Non Duplicate 0101' : 'sum' }
return filtered_data.groupby('JOBNUM').agg(aggregation)
f_data = asdf(df_sensor_data, condition)
f_data2 = asdf(df_sensor_data, condition_2)
Если я запускаю функцию, используя первое условие, все работает хорошо.Фрейм данных f_data создается, и я могу хорошо просматривать его содержимое.Однако, если я запускаю функцию, используя второе условие, мой Spyder продолжает циклировать вечно.
В чем может быть причина?Код между этими двумя условиями не так уж отличается, поэтому я не вижу, что может заставить мою программу зацикливаться вечно.
PS: первое условие получает кадр данных из 160 строк, тогда как второе имеет более6000. Будет ли это иметь значение между временем компиляции?В любом случае, все равно похоже, что он занимает намного больше, чем должен был.