-
-
Notifications
You must be signed in to change notification settings - Fork 18.7k
Description
Feature Type
Adding new functionality to pandas
Changing existing functionality in pandas
Removing existing functionality in pandas
To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item. Press space again to drop the item in its new position, or press escape to cancel.
Problem Description
Pandas has many in-place operators implemented:
__iadd__, __isub__, __imul__, __itruediv_ __ifloordiv __imod__, __ipow__, __iand__, __ixor__, __ior__, __imatmul__
As for __rshift__
, __lshift__
, __irshift__
and __ilshift__
they don't work in version 2.2.2
.
>>> import pandas as pd
>>> s = pd.Series([0, 1, 2])
>>> s <<= 2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for <<=: 'Series' and 'int'
And numpy
implements all methods:
>>> import numpy as np
>>> s = np.array([0, 1, 2])
>>> s <<= 3
>>> s
array([ 0, 8, 16])
Feature Description
Allow for __rshift__
, __lshift__
, __irshift__
and __ilshift__
calls in Series
and DataFrames
>>> import pandas as pd
>>> s = pd.Series([0, 1, 2])
>>> s << 3
0 0
1 8
2 16
>>> s <<= 3
>>> s
0 0
1 8
2 16
Alternative Solutions
For now, the solution is to create a new Series
operating over the underlying numpy
array
>>> pd.Series(s.values << 3)
0 0
1 8
2 16
dtype: int64
Additional Context
It is curious that the last issue that talks about shift operations is from more than 10 years ago (#2337). Indeed it's quite a niche feature and fits more computer scientists rather than data scientists. Anyway, I thought about this feature more for completeness and consistency with python operators rather than usefulness.
Activity
luxedo commentedon Jan 11, 2025
If that's a desired feature I'd be glad to add a PR for it
FEAT pandas-dev#60693: shift operations for Series and DataFrames
FEAT pandas-dev#60693: shift operations for Series and DataFrames
FEAT pandas-dev#60693: shift operations for Series and DataFrames
ENH pandas-dev#60693: shift operations for Series and DataFrames