Замена значений в кадре данных на основе условия - PullRequest
0 голосов
/ 15 января 2019

Я использую Dataframe в Python, который имеет столбец процентов. Я хотел бы заменить значения, которые больше 50%, на «вероятно» и меньше, чем на «не вероятно».

Вот варианты, которые я нашел:

df.apply
df.iterrows
df.where

Это работает для df.iterrows:

for index, row in df.iterrows():
if row['Chance']>0.50:
    df.loc[index, 'Chance']='Likely'
else:
    df.loc[index, 'Chance']='Not-Likely'

Однако я прочитал, что это не оптимальный способ «обновления» значений.

Как бы вы сделали это, используя другие методы, и какой из них вы бы порекомендовали? Кроме того, если вы знаете какие-либо другие методы, пожалуйста, поделитесь! Спасибо

1 Ответ

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

Дайте этому шанс.

import numpy as np

df['Chance'] = np.where(df['Chance'] > 0.50, 'Likely', 'Not-Likely')

Это, однако, сделает все от = до .50 как 'Not-Likely'

Как примечание: .itertuples(), как говорят, примерно в 10 раз быстрее, чем .iterrows(), и zip, примерно в 100 раз быстрее.

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