@@ -1648,10 +1648,7 @@ def _setitem_with_indexer(self, indexer, value):
1648
1648
labels = item_labels [info_idx ]
1649
1649
1650
1650
# Ensure we have something we can iterate over
1651
- ilocs = info_idx
1652
- if isinstance (info_idx , slice ):
1653
- ri = Index (range (len (self .obj .columns )))
1654
- ilocs = ri [info_idx ]
1651
+ ilocs = self ._ensure_iterable_column_indexer (indexer [1 ])
1655
1652
1656
1653
plane_indexer = indexer [:1 ]
1657
1654
lplane_indexer = length_of_indexer (plane_indexer [0 ], self .obj .index )
@@ -1900,6 +1897,20 @@ def _setitem_with_indexer_missing(self, indexer, value):
1900
1897
self .obj ._mgr = self .obj .append (value )._mgr
1901
1898
self .obj ._maybe_update_cacher (clear = True )
1902
1899
1900
+ def _ensure_iterable_column_indexer (self , column_indexer ):
1901
+ """
1902
+ Ensure that our column indexer is something that can be iterated over.
1903
+ """
1904
+ # Ensure we have something we can iterate over
1905
+ if is_integer (column_indexer ):
1906
+ ilocs = [column_indexer ]
1907
+ elif isinstance (column_indexer , slice ):
1908
+ ri = Index (range (len (self .obj .columns )))
1909
+ ilocs = ri [column_indexer ]
1910
+ else :
1911
+ ilocs = column_indexer
1912
+ return ilocs
1913
+
1903
1914
def _align_series (self , indexer , ser : "Series" , multiindex_indexer : bool = False ):
1904
1915
"""
1905
1916
Parameters
0 commit comments