У меня есть следующий код:IndexError при удалении строки в Dataframe
for (i1, row1), (i2, row2) in pairwise(df.iterrows()):
if row1['months_to_maturity'] == row2['months_to_maturity'] and
row1['coupon'] == row2['coupon']:
df = df.drop(df.index[[i1]])
То, что я пытаюсь сделать, это избавиться от строк, если выполняется следующее условие
row1['months_to_maturity'] == row2['months_to_maturity'] and
row1['coupon'] == row2['coupon']
Метод pairwise(df.iterrows())
дает текущую строку и следующую строку dataframe
.
К сожалению, когда я выполняю код выше, я получаю эту ошибку
IndexError: index 12 is out of bounds for axis 1 with size 12
я сделал print(len(df.index))
в начале этого раздела и получил 12
печататься, поэтому я немного запутался, почему IndexError
повышается.
Почему бы не использовать drop_duplicates на основе двух столбцов? 'df.drop_duplicates (('months_to_maturity', 'coupon'), inplace = True)' –
Должны ли повторяющиеся строки появляться смежно или вы хотите удалить дубликаты везде, где они появляются? – unutbu
@PadraicCunningham Thank You. Я просто предположил, что не смогу использовать его для определенных столбцов. – user131983