numpy.maximum() का उपयोग करने की एक और संभावना है। यह मेरी राय में पढ़ने के लिए और अधिक सीधे आगे है।
import pandas as pd
import numpy as np
df['value'] = np.maximum(df['value'], 0)
और यह 2-3x तेज भी है।
In [21]: df = pd.DataFrame({'value': np.arange(-1000000,1000000)})
In [22]: %timeit df.loc[df['value']<0,'value'] = 0
10 loops, best of 3: 27.3 ms per loop
In [23]: df = pd.DataFrame({'value': np.arange(-1000000,1000000)})
In [24]: %timeit df['value'] = np.maximum(df['value'], 0)
100 loops, best of 3: 9.42 ms per loop
स्रोत
2015-10-07 19:38:26
ऐसा लगता है कि आप इसे 'numpy' में कैसे करेंगे ... मुझे संदेह है कि इसे 2 कथनों में तोड़ने के अलावा एक और संक्षिप्त तरीका है। – mgilson
शायद कुछ 'df [' value '] = max ((df [' value '], 0) जैसे) – John