pandas.DataFrame.mode#
- DataFrame.mode(axis=0, numeric_only=False, dropna=True)[源代码]#
获取所选轴上每个元素的众数。
一组值的中位数是出现次数最多的值。可能存在多个中位数。
- Parameters:
- axis{0 或 ‘index’, 1 或 ‘columns’}, default 0
在寻找中位数时要迭代的轴:
0 或 ‘index’:获取每列的中位数
1 或 ‘columns’:获取每行的中位数。
- numeric_onlybool,默认 False
如果为 True,则仅应用于数值列。
- dropnabool, default True
不考虑 NaN/NaT 的计数。
- Returns:
- DataFrame
每列或每行的中位数。
参见
Series.mode返回 Series 中出现频率最高的值。
Series.value_counts返回 Series 中各值的计数。
Examples
>>> df = pd.DataFrame([('bird', 2, 2), ... ('mammal', 4, np.nan), ... ('arthropod', 8, 0), ... ('bird', 2, np.nan)], ... index=('falcon', 'horse', 'spider', 'ostrich'), ... columns=('species', 'legs', 'wings')) >>> df species legs wings falcon bird 2 2.0 horse mammal 4 NaN spider arthropod 8 0.0 ostrich bird 2 NaN
默认情况下,不考虑缺失值,并且翅膀的中位数都是 0 和 2。由于结果 DataFrame 有两行,因此
species和legs的第二行包含NaN。>>> df.mode() species legs wings 0 bird 2.0 0.0 1 NaN NaN 2.0
设置
dropna=False后,会考虑NaN值,并且它们可以是中位数(如翅膀)。>>> df.mode(dropna=False) species legs wings 0 bird 2 NaN
设置
numeric_only=True后,仅计算数值列的中位数,并忽略其他类型的列。>>> df.mode(numeric_only=True) legs wings 0 2.0 0.0 1 NaN 2.0
要计算列而非行的中位数,请使用 axis 参数:
>>> df.mode(axis='columns', numeric_only=True) 0 1 falcon 2.0 NaN horse 4.0 NaN spider 0.0 8.0 ostrich 2.0 NaN