📜  Python|熊猫系列.mode()(1)

📅  最后修改于: 2023-12-03 15:04:27.485000             🧑  作者: Mango

Python 熊猫系列——.mode()

简介

Pandas 是一个用于数据操作和分析的 Python 库。其中的 DataFrame 对象是 Pandas 最常用的数据对象之一。DataFrame.mode() 方法可以返回 DataFrame 中出现最频繁的值或众数。

语法
DataFrame.mode(axis=0, numeric_only=False, dropna=True)
参数
  • axis:可选参数,指定计算众数的轴。默认为 0,表示行方向。也可以设置为 1,表示列方向。
  • numeric_only:可选参数,指定是否仅考虑数字类型的值。默认为 False,表示所有类型的数据均可计算众数。如果设置为 True,则仅对数字类型进行计算。
  • dropna:可选参数,指定计算时是否忽略 NaN 值。默认为 True,表示忽略 NaN 值;如果设置为 False,则 NaN 值也会参与计算。
返回值

返回一个新的 DataFrame,其中包含原 DataFrame 中每一列的众数。如果所有值都出现了相同的次数,mode() 方法将返回一个包含所有值的 DataFrame

示例
import pandas as pd

data = {'name': ['Amy', 'Bob', 'Charlie', 'Charlie', 'Eddie', 'Frank', 'Frank'],
        'age': [25, 18, 26, 26, 21, 25, 24],
        'gender': ['F', 'M', 'M', 'F', 'M', 'M', 'M']}
df = pd.DataFrame(data)
print(df)

# 计算每列的众数
modes = df.mode()
print(modes)

# 设置 axis=1,计算每行的众数
row_modes = df.mode(axis=1)
print(row_modes)

# 设置 numeric_only=True,只计算数值列的众数
numerical_modes = df.mode(numeric_only=True)
print(numerical_modes)

# 设置 dropna=False,包含 NaN 值的列也参与计算
with_na_modes = df.mode(dropna=False)
print(with_na_modes)

输出:

       name  age gender
0       Amy   25      F
1       Bob   18      M
2   Charlie   26      M
3   Charlie   26      F
4     Eddie   21      M
5     Frank   25      M
6     Frank   24      M

      name  age gender
0  Charlie  25.0      M
1      NaN  26.0      M
2      NaN   NaN      F
3      NaN   NaN    NaN
4      NaN   NaN    NaN
5      NaN   NaN    NaN
6      NaN   NaN    NaN

       0   1    2
0   25.0 NaN  0.0
1   18.0 NaN  1.0
2   26.0 NaN  1.0
3   26.0 NaN  0.0
4   21.0 NaN  1.0
5   25.0 NaN  1.0
6   24.0 NaN  1.0

      name  age gender
0  Charlie   25      M
1      Bob   18      M
2  Charlie   26      M

      name  age gender
0       Amy   25      F
1       Bob   18      M
2   Charlie   26      M
3   Charlie   26      F
4     Eddie   21      M
5     Frank   25      M
6     Frank   24      M