@@ -1969,7 +1969,7 @@ def ndim(self):
19691969 self ._ndim = len (self .axes )
19701970 return self ._ndim
19711971
1972- def set_axis (self , axis , value , maybe_rename = True , check_axis = True ):
1972+ def _set_axis (self , axis , value , check_axis = True ):
19731973 cur_axis = self .axes [axis ]
19741974 value = _ensure_index (value )
19751975
@@ -1980,6 +1980,10 @@ def set_axis(self, axis, value, maybe_rename=True, check_axis=True):
19801980
19811981 self .axes [axis ] = value
19821982 self ._shape = None
1983+ return cur_axis , value
1984+
1985+ def set_axis (self , axis , value , maybe_rename = True , check_axis = True ):
1986+ cur_axis , value = self ._set_axis (axis , value , check_axis )
19831987
19841988 if axis == 0 :
19851989
@@ -3473,24 +3477,22 @@ def reindex_axis0_with_method(self, new_axis, indexer=None, method=None,
34733477 return self .reindex (new_axis , indexer = indexer , method = method ,
34743478 fill_value = fill_value , limit = limit , copy = copy )
34753479
3480+ def _delete_from_block (self , i , item ):
3481+ super (SingleBlockManager , self )._delete_from_block (i , item )
3482+
3483+ # reset our state
3484+ self ._block = self .blocks [0 ] if len (self .blocks ) else make_block (np .array ([],dtype = self ._block .dtype ),[],[])
3485+ self ._values = self ._block .values
3486+
34763487 def get_slice (self , slobj , raise_on_error = False ):
34773488 if raise_on_error :
34783489 _check_slice_bounds (slobj , self .index )
34793490 return self .__class__ (self ._block ._slice (slobj ),
34803491 self .index ._getitem_slice (slobj ), fastpath = True )
34813492
3482- def set_axis (self , axis , value ):
3483- cur_axis = self .axes [axis ]
3484- value = _ensure_index (value )
3485-
3486- if len (value ) != len (cur_axis ):
3487- raise ValueError ('Length mismatch: Expected axis has %d elements, '
3488- 'new values have %d elements' % (len (cur_axis ),
3489- len (value )))
3490-
3491- self .axes [axis ] = value
3492- self ._shape = None
3493- self ._block .set_ref_items (self .items , maybe_rename = True )
3493+ def set_axis (self , axis , value , maybe_rename = True , check_axis = True ):
3494+ cur_axis , value = self ._set_axis (axis , value , check_axis )
3495+ self ._block .set_ref_items (self .items , maybe_rename = maybe_rename )
34943496
34953497 def set_ref_items (self , ref_items , maybe_rename = True ):
34963498 """ we can optimize and our ref_locs are always equal to ref_items """
0 commit comments