Skip to content

Commit d5f2815

Browse files
committed
REF: extract function create_describer
1 parent 97f136b commit d5f2815

File tree

1 file changed

+20
-6
lines changed

1 file changed

+20
-6
lines changed

pandas/core/describe.py

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,25 +61,39 @@ def describe_ndframe(
6161
Dataframe or series description.
6262
"""
6363
percentiles = refine_percentiles(percentiles)
64+
describer = create_describer(
65+
obj,
66+
include=include,
67+
exclude=exclude,
68+
datetime_is_numeric=datetime_is_numeric,
69+
)
70+
result = describer.describe(percentiles=percentiles)
71+
return cast(FrameOrSeries, result)
6472

65-
describer: NDFrameDescriberAbstract
6673

74+
def create_describer(
75+
obj: "FrameOrSeries",
76+
include: Optional[Union[str, Sequence[str]]],
77+
exclude: Optional[Union[str, Sequence[str]]],
78+
datetime_is_numeric: bool,
79+
) -> "NDFrameDescriberAbstract":
80+
"""
81+
Create concrete NDFrameDescriberAbstract instance suitable for the object.
82+
"""
83+
describer: NDFrameDescriberAbstract
6784
if obj.ndim == 1:
68-
describer = SeriesDescriber(
85+
return SeriesDescriber(
6986
series=cast("Series", obj),
7087
datetime_is_numeric=datetime_is_numeric,
7188
)
7289
else:
73-
describer = DataFrameDescriber(
90+
return DataFrameDescriber(
7491
frame=cast("DataFrame", obj),
7592
include=include,
7693
exclude=exclude,
7794
datetime_is_numeric=datetime_is_numeric,
7895
)
7996

80-
result = describer.describe(percentiles=percentiles)
81-
return cast(FrameOrSeries, result)
82-
8397

8498
class NDFrameDescriberAbstract(ABC):
8599
"""Abstract class for describing dataframe or series."""

0 commit comments

Comments
 (0)