преобразовать оператор pandas в оператор numpy - PullRequest
0 голосов
/ 29 января 2020

У меня есть следующий оператор pandas:

df['temp'] = np.where((c - e).abs() < threshold, 0, np.where(c > e, +1, -1))
s = df['temp'].where(df['temp'].groupby(df['temp'].ne(df['temp'].shift()).cumsum()).transform('size').ge(min_length), 0)

, но я не хочу использовать временный столбец, поэтому я могу просто переписать первую строку:

temp = np.where((c - e).abs() < threshold, 0, np.where(c > e, +1, -1))

и у меня есть массив numpy; но теперь вопрос, как переписать вторую строку для numpy?

1 Ответ

0 голосов
/ 29 января 2020

Этот фрагмент кода ищет последовательности значений, которые не изменяются, которые длиннее min_length и устанавливают их на 0.

Вы можете сделать то же самое с:

_, i, c = np.unique(np.cumsum(temp[1:] != temp[:-1]), return_counts = True, return_inverse = True)
temp[1:][(c >= min_length)[i]] = 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...