maxframe.dataframe.DataFrame.mode#

DataFrame.mode(axis=0, numeric_only=False, dropna=True, combine_size=None)#

获取沿选定轴的每个元素的众数。

一组值的众数是出现频率最高的值。可能有多个值。

参数:
  • axis ({0 or 'index', 1 or 'columns'}, default 0) -- 搜索众数时要迭代的轴:* 0 或 'index':获取每列的众数 * 1 或 'columns':获取每行的众数。

  • numeric_only (bool, default False) -- 如果为 True,则仅应用于数值列。

  • dropna (bool, default True) -- 不考虑 NaN/NaT 的计数。

返回:

每列或每行的众数。

返回类型:

DataFrame

参见

Series.mode

返回 Series 中出现频率最高的值。

Series.value_counts

返回 Series 中值的计数。

示例

>>> import maxframe.tensor as mt
>>> import maxframe.dataframe as md
>>> df = md.DataFrame([('bird', 2, 2),
...                    ('mammal', 4, mt.nan),
...                    ('arthropod', 8, 0),
...                    ('bird', 2, mt.nan)],
...                   index=('falcon', 'horse', 'spider', 'ostrich'),
...                   columns=('species', 'legs', 'wings'))
>>> df.execute()
           species  legs  wings
falcon        bird     2    2.0
horse       mammal     4    NaN
spider   arthropod     8    0.0
ostrich       bird     2    NaN

默认情况下,不考虑缺失值,翅膀的众数为 0 和 2。由于结果 DataFrame 有两行,因此 specieslegs 的第二行包含 NaN

>>> df.mode().execute()
  species  legs  wings
0    bird   2.0    0.0
1     NaN   NaN    2.0

设置 dropna=False 时,会考虑 NaN 值并且它们可以成为众数(例如对于 wings)。

>>> df.mode(dropna=False).execute()
  species  legs  wings
0    bird     2    NaN

设置 numeric_only=True 时,仅计算数值列的众数,其他类型的列会被忽略。

>>> df.mode(numeric_only=True).execute()
   legs  wings
0   2.0    0.0
1   NaN    2.0

要按列而不是按行计算众数,请使用 axis 参数:

>>> df.mode(axis='columns', numeric_only=True).execute()
           0    1
falcon   2.0  NaN
horse    4.0  NaN
spider   0.0  8.0
ostrich  2.0  NaN