У меня есть эта функция:
def same_price(df=df):
df= df.sort_values(by='Ticket')
nucleus= dict()
k=0
while df.shape[0]>=2:
if df.Price.iloc[0]==df.Price.iloc[1]:
value= df.Price.iloc[0]
n=0
nucleus[k]= []
while df.Price.iloc[n]==value:
nucleus[k].append(df.index[n])
n+=1
if n>df.shape[0]:
df.drop(nucleus[k], axis=0, inplace=True)
break
else:
df.drop(nucleus[k], axis=0, inplace=True)
k+=1
else:
if df.shape[0]>=3:
df.drop(df.index[0], axis=0, inplace=True)
else:
break
return(nucleus)
Цель этой функции - go через заказанный кадр данных и составить список лиц, заплативших одинаковую цену, ПОЛУЧЕННЫХ последовательность «Билет» Я бы. (Я не просто хочу перечислить ВСЕХ людей, которые заплатили одну и ту же цену, независимо от последовательности!)
Фрейм данных:
Price Ticket
Id
521 93.5000 12749
821 93.5000 12749
584 40.1250 13049
648 35.5000 13213
633 30.5000 13214
276 77.9583 13502
628 77.9583 13502
766 77.9583 13502
435 55.9000 13507
578 55.9000 13507
457 26.5500 13509
588 79.2000 13567
540 49.5000 13568
48 7.7500 14311
574 7.7500 14312
369 7.7500 14313
Когда я проверяю это:
same_price(df[:11])
работает очень хорошо, и вывод: {0: [521, 821], 1: [276, 628, 766], 2: [435, 578]}
но, same_fare(df[:10]) throws:
IndexError: отсутствует один позиционный индексатор -bounds.
Я хотел бы знать, что не так с этой функцией, ребята.
Thx