Функция больше и меньше чем в pandas - PullRequest
0 голосов
/ 06 августа 2020

Я тестирую данные в столбце «изменение дня». Если значения находятся в диапазоне, я хочу, чтобы в отдельном столбце отображалось 100 для да и 0 для нет. Я пробовал этот код:

cond16 = df[(df['daychange']<8) & (df['daychange']>2)]
df['day3'] = np.where(cond16, 100, 0)

Но получаю следующую ошибку:

ValueError: Length of values (932) does not match length of index (13063)

Небольшая помощь будет очень признательна!

Ответы [ 2 ]

0 голосов
/ 06 августа 2020

Вы почти поняли. Небольшая ошибка упоминается в комментариях @Erfan. Вам просто нужно условие, а не выделение в np.where.

cond16 = (df['daychange']<8) & (df['daychange']>2)
df['day3'] = np.where(cond16, 100, 0)
0 голосов
/ 06 августа 2020

Как упоминал Эрфан в комментарии, вы уже создали фильтр. Просто используйте это, чтобы установить значения в DataFrame.

# Create filter condition
cond16 = (df['daychange']<8) & (df['daychange']>2)

# Set rows where condition is true to 100
df.loc[cond16, 'day3'] = 100

# Set rows where condition is not true to 0
df.loc[~cond16, 'day3'] = 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...