एक बूलियन श्रृंखला पलटना, का उपयोग करें~s
:
In [7]: s = pd.Series([True, True, False, True])
In [8]: ~s
Out[8]:
0 False
1 False
2 True
3 False
dtype: bool
Python2.7, NumPy 1.8.0, Pandas 0.13.1 का उपयोग करना:
In [119]: s = pd.Series([True, True, False, True]*10000)
In [10]: %timeit np.invert(s)
10000 loops, best of 3: 91.8 µs per loop
In [11]: %timeit ~s
10000 loops, best of 3: 73.5 µs per loop
In [12]: %timeit (-s)
10000 loops, best of 3: 73.5 µs per loop
पंडों के रूप में 0.13.0, श्रृंखला अब उपवर्ग नहीं हैं numpy.ndarray
; वे अब उपवर्ग हैं pd.NDFrame
। यह कुछ के साथ क्या करना है क्यों np.invert(s)
नहीं रह गया है ~s
या के रूप में उपवास के रूप में हो सकता है -s
।
कैविएट: timeit
हार्डवेयर, कंपाइलर, ओएस, पायथन, न्यूमपी और पंडस संस्करणों सहित कई कारकों के आधार पर परिणाम भिन्न हो सकते हैं।
object
काम करने के लिए नीचे दिए गए उत्तरों के प्रकार नहीं हैं , इसलिए उपयोग करें:~ df.astype('bool')