BUG: Series.loc setitem with Series raises ValueError · Issue #38303 · pandas-dev/pandas (original) (raw)

import pandas as pd

ser = pd.Series([0, 0, 0], dtype=object)

ser.loc[0] = pd.Series([42]) # ValueError: No axis named 1 for object type Series

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
~/sources/official.clone/pandas/pandas/core/generic.py in _get_axis_number(cls, axis)
    456         try:
--> 457             return cls._AXIS_TO_AXIS_NUMBER[axis]
    458         except KeyError:

KeyError: 1

During handling of the above exception, another exception occurred:

ValueError                                Traceback (most recent call last)
<ipython-input-24-7c4b5d72ca25> in <module>
----> 1 ser.loc[0] = pd.Series([0])

~/sources/official.clone/pandas/pandas/core/indexing.py in __setitem__(self, key, value)
    689 
    690         iloc = self if self.name == "iloc" else self.obj.iloc
--> 691         iloc._setitem_with_indexer(indexer, value, self.name)
    692 
    693     def _validate_key(self, key, axis: int):

~/sources/official.clone/pandas/pandas/core/indexing.py in _setitem_with_indexer(self, indexer, value, name)
   1634             self._setitem_with_indexer_split_path(indexer, value, name)
   1635         else:
-> 1636             self._setitem_single_block(indexer, value, name)
   1637 
   1638     def _setitem_with_indexer_split_path(self, indexer, value, name: str):

~/sources/official.clone/pandas/pandas/core/indexing.py in _setitem_single_block(self, indexer, value, name)
   1848             # setting for extensionarrays that store dicts. Need to decide
   1849             # if it's worth supporting that.
-> 1850             value = self._align_series(indexer, Series(value))
   1851 
   1852         elif isinstance(value, ABCDataFrame) and name != "iloc":

~/sources/official.clone/pandas/pandas/core/indexing.py in _align_series(self, indexer, ser, multiindex_indexer)
   2018 
   2019         elif is_scalar(indexer):
-> 2020             ax = self.obj._get_axis(1)
   2021 
   2022             if ser.index.equals(ax):

~/sources/official.clone/pandas/pandas/core/generic.py in _get_axis(self, axis)
    467     @final
    468     def _get_axis(self, axis: Axis) -> Index:
--> 469         axis_number = self._get_axis_number(axis)
    470         assert axis_number in {0, 1}
    471         return self.index if axis_number == 0 else self.columns

~/sources/official.clone/pandas/pandas/core/generic.py in _get_axis_number(cls, axis)
    457             return cls._AXIS_TO_AXIS_NUMBER[axis]
    458         except KeyError:
--> 459             raise ValueError(f"No axis named {axis} for object type {cls.__name__}")
    460 
    461     @final

ValueError: No axis named 1 for object type Series
0    0    42
dtype: int64
1                       0
2                       0
dtype: object