pandas.core.groupby.SeriesGroupBy.median#

SeriesGroupBy.median(numeric_only=False)[源代码]#

计算各组的中位数,排除缺失值。

对于多个分组,结果索引将是 MultiIndex

参数:
numeric_onlybool, 默认 False

只包含浮点数、整数、布尔列。

在 2.0.0 版本发生变更: numeric_only 不再接受 None 并且默认为 False。

返回:
Series 或 DataFrame

每个组内值的中位数。

参见

Series.groupby

对一个 Series 应用 groupby 函数。

DataFrame.groupby

对DataFrame的每一行或每一列应用一个groupby函数。

例子

对于 SeriesGroupBy:

>>> lst = ["a", "a", "a", "b", "b", "b"]
>>> ser = pd.Series([7, 2, 8, 4, 3, 3], index=lst)
>>> ser
a     7
a     2
a     8
b     4
b     3
b     3
dtype: int64
>>> ser.groupby(level=0).median()
a    7.0
b    3.0
dtype: float64

对于 DataFrameGroupBy:

>>> data = {"a": [1, 3, 5, 7, 7, 8, 3], "b": [1, 4, 8, 4, 4, 2, 1]}
>>> df = pd.DataFrame(
...     data, index=["dog", "dog", "dog", "mouse", "mouse", "mouse", "mouse"]
... )
>>> df
         a  b
  dog    1  1
  dog    3  4
  dog    5  8
mouse    7  4
mouse    7  4
mouse    8  2
mouse    3  1
>>> df.groupby(level=0).median()
         a    b
dog    3.0  4.0
mouse  7.0  3.0

对于重采样器:

>>> ser = pd.Series(
...     [1, 2, 3, 3, 4, 5],
...     index=pd.DatetimeIndex(
...         [
...             "2023-01-01",
...             "2023-01-10",
...             "2023-01-15",
...             "2023-02-01",
...             "2023-02-10",
...             "2023-02-15",
...         ]
...     ),
... )
>>> ser.resample("MS").median()
2023-01-01    2.0
2023-02-01    4.0
Freq: MS, dtype: float64