@@ -1013,7 +1013,13 @@ def _chop(self, sdata: Series, slice_obj: slice) -> Series:
1013
1013
# fastpath equivalent to `sdata.iloc[slice_obj]`
1014
1014
mgr = sdata ._mgr .get_slice (slice_obj )
1015
1015
# __finalize__ not called here, must be applied by caller if applicable
1016
- return sdata ._constructor (mgr , name = sdata .name , fastpath = True )
1016
+
1017
+ # fastpath equivalent to:
1018
+ # `return sdata._constructor(mgr, name=sdata.name, fastpath=True)`
1019
+ obj = type (sdata )._from_mgr (mgr )
1020
+ object .__setattr__ (obj , "_flags" , sdata ._flags )
1021
+ object .__setattr__ (obj , "_name" , sdata ._name )
1022
+ return obj
1017
1023
1018
1024
1019
1025
class FrameSplitter (DataSplitter ):
@@ -1030,7 +1036,11 @@ def _chop(self, sdata: DataFrame, slice_obj: slice) -> DataFrame:
1030
1036
# return sdata.iloc[:, slice_obj]
1031
1037
mgr = sdata ._mgr .get_slice (slice_obj , axis = 1 - self .axis )
1032
1038
# __finalize__ not called here, must be applied by caller if applicable
1033
- return sdata ._constructor (mgr )
1039
+
1040
+ # fastpath equivalent to `return sdata._constructor(mgr)`
1041
+ obj = type (sdata )._from_mgr (mgr )
1042
+ object .__setattr__ (obj , "_flags" , sdata ._flags )
1043
+ return obj
1034
1044
1035
1045
1036
1046
def get_splitter (
0 commit comments