pandas.DataFrame.mode#
- DataFrame.mode(axis=0, numeric_only=False, dropna=True)[源代码]#
获取所选轴上每个元素(或最常见值)。
一组值的众数是出现次数最多的值。可以有多个值。
- 参数:
- axis{0 或 ‘index’, 1 或 ‘columns’}, 默认为 0
在搜索众数时要迭代的轴
0 或 ‘index’ :获取每列的众数
1 或 ‘columns’ :获取每行的众数。
- numeric_onlybool, default False
如果为 True,则仅应用于数字列。
- dropnabool,默认为 True
不考虑 NaN/NaT 的计数。
- 返回:
- DataFrame
每列或每行的众数。
另请参阅
Series.mode返回 Series 中出现频率最高的值。
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
默认情况下,不考虑缺失值,并且 wings 的众数都是 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值时,它们会被考虑在内,并且它们可以成为众数(例如 wings)。>>> df.mode(dropna=False) species legs wings 0 bird 2 NaN
将
numeric_only=True设置为 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