Python: как бы вы интерпретировали этот код, содержащий методы reset_index и shift - PullRequest
0 голосов
/ 19 июня 2019

Как бы вы интерпретировали этот код?

variable_name = df[df.column_name.shift() != df.column_name].reset_index()

1 Ответ

0 голосов
/ 19 июня 2019

Предположим, у вас есть следующие данные:

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 к вашему фрейму данных. Этот метод в основном избавляет от повторяющихся значений в последовательных данных, но экономит только первое.

...