diff --git a/pandas/core/generic.py b/pandas/core/generic.py index 9e3f6f8e36175..207523fa55c5e 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -85,7 +85,6 @@ from pandas.core.dtypes.inference import is_hashable from pandas.core.dtypes.missing import isna, notna -import pandas as pd from pandas.core import arraylike, indexing, missing, nanops import pandas.core.algorithms as algos from pandas.core.arrays import ExtensionArray @@ -106,6 +105,7 @@ from pandas.core.internals import ArrayManager, BlockManager from pandas.core.missing import find_valid_index from pandas.core.ops import align_method_FRAME +from pandas.core.reshape.concat import concat from pandas.core.shared_docs import _shared_docs from pandas.core.sorting import get_indexer_indexer from pandas.core.window import Expanding, ExponentialMovingWindow, Rolling, Window @@ -5304,7 +5304,11 @@ def sample( "when sampling from a Series." ) - weights = pd.Series(weights, dtype="float64") + if isinstance(self, ABCSeries): + func = self._constructor + else: + func = self._constructor_sliced + weights = func(weights, dtype="float64") if len(weights) != axis_length: raise ValueError( @@ -5890,7 +5894,7 @@ def astype( return self.copy() # GH 19920: retain column metadata after concat - result = pd.concat(results, axis=1, copy=False) + result = concat(results, axis=1, copy=False) result.columns = self.columns return result @@ -6254,7 +6258,7 @@ def convert_dtypes( ) for col_name, col in self.items() ] - result = pd.concat(results, axis=1, copy=False) + result = concat(results, axis=1, copy=False) return result # ---------------------------------------------------------------------- @@ -6532,10 +6536,8 @@ def replace( if isinstance(to_replace, (tuple, list)): if isinstance(self, ABCDataFrame): - from pandas import Series - return self.apply( - Series._replace_single, + self._constructor_sliced._replace_single, args=(to_replace, method, inplace, limit), ) self = cast("Series", self)