Я хочу изменить значение df['points']
на 0, если вычитание дает отрицательные значения
df['points'] = df['HOME_SCORE'] - df['prev_HOME_SCORE']
Я пытался
df['points'].apply(lambda x: (df['HOME_SCORE'][x] - df['prev_HOME_SCORE'][x]) if (df['HOME_SCORE'][x] - df['prev_HOME_SCORE'][x]) >= 0 else 0
но не знаю, как получить индекс x, а также не знаю, возможно ли это с таким подходом
(df['HOME_SCORE'] - df['prev_HOME_SCORE']).clip(0)
import numpy as np
df['points'] = np.where((df['HOME_SCORE'] - df['prev_HOME_SCORE']) < 0, 0,(df['HOME_SCORE'] - df['prev_HOME_SCORE']))
сделает очки 0, если ответ будет отрицательным, в противном случае это ответ.
разве скобка для вычитания не нужна?
Вы можете использовать clip
df['points'] = (df['HOME_SCORE'] - df['prev_HOME_SCORE']).clip(0)
или np.where
:
df['points'] = np.where((df['HOME_SCORE'] - df['prev_HOME_SCORE']) < 0, 0,df['HOME_SCORE'] - df['prev_HOME_SCORE'])
используйте np.where или clip