pandas.DataFrame.mode#
- DataFrame.mode(axis=0, numeric_only=False, dropna=True)[源代码][源代码]#
获取沿选定轴的每个元素的模式。
一组值的模式是出现次数最多的值。它可以是多个值。
- 参数:
- 轴{0 或 ‘index’, 1 或 ‘columns’},默认 0
在搜索众数时迭代的轴:
0 或 ‘index’ : 获取每一列的模式
1 或 ‘columns’ : 获取每一行的模式。
- numeric_only布尔值, 默认为 False
如果为真,则仅应用于数值列。
- dropna布尔值, 默认为 True
不考虑 NaN/NaT 的计数。
- 返回:
- DataFrame
每个列或行的模式。
参见
Series.mode
返回一个系列中的最高频率值。
Series.value_counts
返回 Series 中值的计数。
例子
>>> 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