Как я понял, может быть, это то, что вам нужно.
s = (df.Days>0) & (df.Days<=60)
df['ID_new']= np.where ((s) & (df.supply_counts>=100), 1,0)
Вход
ID supply_counts Days
0 1 135 -15
1 1 70 67
2 1 90 38
3 1 80 49
4 1 68 71
5 2 116 85
6 1 81 91
7 2 62 15
8 1 112 1
9 1 115 65
10 2 87 51
11 1 105 -9
12 1 107 2
13 2 66 79
14 2 92 46
Выход
ID supply_counts Days ID_new
0 1 135 -15 0
1 1 70 67 0
2 1 90 38 0
3 1 80 49 0
4 1 68 71 0
5 2 116 85 0
6 1 81 91 0
7 2 62 15 0
8 1 112 1 1
9 1 115 65 0
10 2 87 51 0
11 1 105 -9 0
12 1 107 2 1
13 2 66 79 0
14 2 92 46 0
Если результат необходим, чтобы сумма каждого идентификатора равнялась 1, если сумма supply_counts> 100, тогда будет работать код, приведенный ниже.
df2 = df.groupby('id').sum().reset_index()
s = (df2.days>0) & (df2.days<=60)
df2['y']= np.where ((s) & (df2.supply>=100), 1,0)
df2[['id','y']]
Выход
id y
0 1 1
1 2 0
2 3 0