Найти последовательный индекс панды - PullRequest
0 голосов
/ 22 октября 2018

У меня есть фрейм данных -

cols = ['hops','frequency']
data = [[-13,2],[-8,2],[-5,1],[0,2],[2,1],[4,1],[7,1]]
data = np.asarray(data)
indices = np.arange(0,len(data))

df= pd.DataFrame(data, index=indices, columns=cols)

Теперь я хочу проверить, является ли индекс прыжков, связанных с максимумом, последовательным или нет.например, здесь максимальная частота равна 2, а индекс, имеющий их, равен 0 1 3. Теперь нам нужно проверить, все ли элементы последовательны или нет. В этом случае индекс не должен быть 0 1 2, чтобы быть последовательным.

1 Ответ

0 голосов
/ 22 октября 2018

Разбейте свою логику на части, и вы обнаружите, что построение решения проще.

Сначала рассчитайте индексы, используя логическое индексирование:

idx = df.index[df['frequency'] == df['frequency'].max()]
# Int64Index([0, 1, 3], dtype='int64')

Затем вычислите различия между последовательными значениями:

diffs = np.diff(idx)
# array([1, 2], dtype=int64)

Наконец, проверьте, равны ли все различия 1:

diff_one_check = (diffs == 1).all()
# False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...