pandas update with condition
import pandas as pd
import numpy as np
df = pd.DataFrame({'value':np.arange(1000000)})
# Solution 1 - Fastest :
df['value'] = np.where(df['value'] > 20000, 0, df['value'])
# Solution 2:
df.loc[df['value'] > 20000, 'value'] = 0
# Solution 3:
df['value'] = df['value'].mask(df['value'] > 20000, 0)
# Solution 4 - Slowest, note that df.where applies where condition is wrong:
df['a'] = df.where(df.a <= 20000, 0)