-
-
Notifications
You must be signed in to change notification settings - Fork 18.4k
Wrong orientation of operations between DataFrame and range() #17901
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
A bit obscure, but In [3]: df + collections.deque([0, 1])
Out[3]:
A B
0 1.0 1.0
1 2.0 2.0 |
Yeah, I bet this happens with anything which is (conceptually) 1-d but not recognized as list-like by pandas. |
must be a too specific path somewhere, these are both considered list-like (ala |
|
OK, bet lost :-) |
I'm interested in working on this bug, but I'm struggling to figure out where the relevant code is. There's no |
Ah-- looks like the factory is in |
Looks like the issue is that a list has an
One approach might be something like this:
But I imagine this could introduce other gotchas and possibly hurt performance. |
@elsander : I've got a fix for this that I'm in the process of finalizing, but if you'd rather work on it I'd be fine with that. From what I can tell, the root cause appears to be pandas' alignment process prior to when addition/multiplication/etc occurs: Lines 1150 to 1151 in a2e5400
Specifically, the check here is a bit too narrow: Lines 1168 to 1169 in a2e5400
Basically I swapped this with Could be other workarounds though, so not trying to suggest what I did is the "best" approach. |
@jschendel if you have a fix in progress, go for it! I didn't have a good workaround in mind. |
@elsander : Thanks! Didn't mean to jump in and steal away the issue. I'd be happy to provide input or do code review for any other issues you want to work on (and not steal away the issue!). |
Code Sample, a copy-pastable example if possible
Problem description
Operations where the operand is a
range
operate in the wrong direction compared to all other 1-d objects (I can think of).Expected Output
Same as
In [4]:
andIn [5]:
.Output of
pd.show_versions()
INSTALLED VERSIONS
commit: 8a69543
python: 3.5.3.final.0
python-bits: 64
OS: Linux
OS-release: 4.9.0-3-amd64
machine: x86_64
processor:
byteorder: little
LC_ALL: None
LANG: it_IT.UTF-8
LOCALE: it_IT.UTF-8
pandas: 0.21.0rc1+19.g8a69543ab.dirty
pytest: 3.0.6
pip: 9.0.1
setuptools: None
Cython: 0.25.2
numpy: 1.12.1
scipy: 0.19.0
pyarrow: None
xarray: None
IPython: 5.1.0.dev
sphinx: 1.5.6
patsy: 0.4.1
dateutil: 2.6.0
pytz: 2017.2
blosc: None
bottleneck: 1.2.1
tables: 3.3.0
numexpr: 2.6.1
feather: 0.3.1
matplotlib: 2.0.0
openpyxl: None
xlrd: 1.0.0
xlwt: 1.1.2
xlsxwriter: 0.9.6
lxml: None
bs4: 4.5.3
html5lib: 0.999999999
sqlalchemy: 1.0.15
pymysql: None
psycopg2: None
jinja2: 2.9.6
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: 0.2.1
The text was updated successfully, but these errors were encountered: