Как найти и изменить значения строк перед определенным значением? - PullRequest
1 голос
/ 13 апреля 2020

У меня есть серия, подобная этой:

series = pd.Series([0, 0, 0, 1, 2, 3, 0, 0, 1, 2])

Как мне изменить все значения 0 до 1 (например, на NaN)? Таким образом, ряд должен выглядеть следующим образом:

[0, 0, NaN, 1, 2, 3, 0, NaN, 1, 2]

Я пытался сгенерировать:

series_shift = series.shift(-1)

Задача состоит в том, чтобы найти и заменить первые значения -1 для каждого блока * 1014. *, но я не могу понять это тоже.

1 Ответ

2 голосов
/ 13 апреля 2020

Вы можете использовать series.eq() и shift(-1) вместе с &, чтобы проверить, является ли текущее значение 0 и следующее значение 1, затем используйте series.mask

series.mask(series.eq(0) & series.shift(-1).eq(1))

0    0.0
1    0.0
2    NaN
3    1.0
4    2.0
5    3.0
6    0.0
7    NaN
8    1.0
9    2.0
dtype: float64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...