Skip to content

Commit 12902bc

Browse files
committed
ENH: ~ for DataFrame #2110
1 parent a2085e6 commit 12902bc

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

pandas/core/frame.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,6 @@ class DataConflictError(Exception):
176176

177177
#----------------------------------------------------------------------
178178
# Factory helper methods
179-
180-
181179
def _arith_method(op, name, default_axis='columns'):
182180
def na_op(x, y):
183181
try:
@@ -702,6 +700,10 @@ def __neg__(self):
702700
arr = operator.neg(self.values)
703701
return self._wrap_array(arr, self.axes, copy=False)
704702

703+
def __invert__(self):
704+
arr = operator.inv(self.values)
705+
return self._wrap_array(arr, self.axes, copy=False)
706+
705707
# Comparison methods
706708
__eq__ = _comp_method(operator.eq, '__eq__')
707709
__ne__ = _comp_method(operator.ne, '__ne__')

pandas/tests/test_frame.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2966,6 +2966,9 @@ def test_neg(self):
29662966
# what to do?
29672967
assert_frame_equal(-self.frame, -1 * self.frame)
29682968

2969+
def test_invert(self):
2970+
assert_frame_equal(-(self.frame < 0), ~(self.frame <0))
2971+
29692972
def test_first_last_valid(self):
29702973
N = len(self.frame.index)
29712974
mat = randn(N)

0 commit comments

Comments
 (0)