a = pd.DataFrame({"A":['a', 'a','b','c','a','b','c','b','c','c'],
"C":[0.4,0.38,0.42,0.85,0.22,0.38,0.38,0.11,0.21,0.21]})
a['B'] = a.groupby("A").cumcount()+1
a = a.sort_values(by=['A','B'])
a = a.reset_index()
a['D'] = pd.DataFrame(round(a.groupby('A')['C'].cumsum(),2))
a['E'] =""
a['F'] =""
a['J'] =""
for i in range(len(a.B)):
if a.B[i]<=1:
if a.D[i] <1:
a.E[i] = 'No'
else:
a.E[i] = 'Yes'
else:
if a.D[i-1]>=1:
a.E[i]='NA'
else:
if a.D[i]<1:
a.E[i]='No'
else:
a.E[i]='Yes'
i=i+1
Я определил выше l oop в функции, но я получил ошибку, поскольку "объект типа 'int' не имеет len ()", "произошел с индексом 0"
def five(x,y,z):
for i in range(len(x)):
if x[i]<=1:
if y[i]<1:
z[i]='No'
else:
z[i]='Yes'
else:
if y[(i-1)]>=1:
z[i]='N/A'
else:
if y[i]<1:
z[i]='No'
else:
z[i]='Yes'
a ['E'] = a.apply (лямбда-строка: пять (строка ['B'], строка ['D'], строка ['E']), ось = 1)