Предположим, у меня есть следующий фрейм данных:
CategoryID Days Views
a 1 19
a 2 2000
a 5 5667
a 7 7899
b 1 2
b 3 245
c 1 1
c 2 252
c 7 2657
Учитывая threshold = n
, я хочу создать два списка и буду добавлять их, пока не достигну порога + 1 элемент для каждой категории.
Итак, если n < 4
, я ожидаю для категории a
:
days_list = [1,2,5]
views_list = [19, 2000, 5667]
После этого я хочу применить функцию в этих списках и затем запустить итерацию в следующемкатегория. Однако я сталкиваюсь с двумя проблемами со следующим кодом:
- Я не могу выполнить итерацию правильно, когда
i == 0
- Итерация не переходит к следующей категории.
df['interpolated'] = int
days_list = []
views_list = []
for i,post in enumerate(category):
if df['category_id'].iloc[i-1] != post:
days_list.append(df['days new'].iloc[i])
views_list.append(df['views'].iloc[i])
elif df['category_id'].iloc[i] == post and df[category_id].iloc[i-1] == post:
if df['days new'].iloc[i] < 3:
days_list.append(df['days new'].iloc[i])
views_list.append(df['views'].iloc[i])
elif df['days new'].iloc[i] != 3:
days_list.append(df['days new'].iloc[i])
views_list.append(df['views'].iloc[i])
break
# Calculate the interpolation
interpolator = log_interp1d(days_list,views_list)
df['interpolated'] = round(interpolator(4).astype(int))
# Reset the lists after the category loop
days_list = []
views_list = []
Может кто-нибудь дать мне немного света? Спасибо!