как сохранить значение и значение ниже смещения (1) - PullRequest
0 голосов
/ 30 января 2019

Я хочу знать, как сохранить значение и значение ниже, когда оно равно («NaN»).Спасибо. Пример

df = pd.DataFrame ({'list': ["juan", "NaN", "Maria", "NaN", "juan", "juanita", "juan", "NaN"]})

Я просто хочу продолжить

df = pd.DataFrame ({'list': ["juan", "NaN", "juan", "NaN"]})

только тогда, когда значение равно "juan", а значение ниже - "NaN".Но я не хочу использовать «для» ... Я думаю, что-то вроде «shift (1)»

1 Ответ

0 голосов
/ 31 января 2019

Сначала мы получим индексы каждой строки, которая содержит «juan», а под ней есть строка, которая содержит «NaN:

cond1 = df['list'] == 'juan'
cond2 = df['list'].shift(-1) == 'NaN'
idxs = cond1 & cond2
idxs = idxs[idxs == True]

Мы почти закончили, но так как вы хотитевключить последующие строки «NaN» в ваш конечный вывод, нам нужно будет включить их индексы:

idxs = np.array([[i,i+1] for i in idxs.index.values]).flatten()

Чтобы получить желаемый результат, мы просто выбираем эти индексы из исходного df:

output = df.loc[idxs]

Что дает нам:

    list
0   juan
1   NaN
6   juan
7   NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...