Предположим, у вас есть следующие данные:
import pandas as pd
df = pd.DataFrame({'Col1': [10, 20, 15, 30, 45],
'Col2': [13, 23, 18, 33, 48],
'Col3': [17, 27, 27, 37, 52]})
Вы видите, как Col3 имеет повторяющееся значение 27 в нем.
Когда вы применяете смену на Col3, результат:
0 NaN
1 17.0
2 27.0
3 27.0
4 37.0
Таким образом, когда вы применяете тест на булеву эквивалентность, вы получаете:
0 True
1 True
2 False
3 True
4 True
Затем вы применяете логическое маскирование к DF и вуаля, вторые 27 пропали. Но ваш индекс теперь не в порядке, поэтому вы применяете reset_index к вашему фрейму данных. Этот метод в основном избавляет от повторяющихся значений в последовательных данных, но экономит только первое.