看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
pandas
的 mode()
方法用于计算指定轴上出现频率最高的值,即众数。与 mean()
、median()
、min()
不同的是,众数可以是多个值,因为可能有多个值出现频率相同。
获取沿选定轴的每个元素的众数。一组值的众数是最常出现的值。它可以是多个值。
DataFrame.mode(
axis=0,
numeric_only=False,
dropna=True
)
axis
: {0 or ‘index’, 1 or ‘columns’}, 默认值 0
0
或 'index'
表示沿着列(即每列的众数),1
或 'columns'
表示沿着行(即每行的众数)。numeric_only
: bool, 默认值 False
True
,则只计算数值类型的数据。对于非数值类型的列,将被忽略。如果为 False
,所有类型的数据都将被考虑。dropna
: bool, 默认值 True
True
,则忽略缺失值(NaN)。如果为 False
,缺失值将被视为有效值参与计算。返回一个 DataFrame
对象。如果有多个众数,结果会有多行;如果没有众数,返回的 DataFrame
将是空的。
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有两行,所以第二行的物种和腿包含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
'''
要计算列而非行的众数,请使用轴参数:
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
'''
mode()
方法非常灵活,能够处理多种类型的数据并且找出最常出现的值。对于处理分类数据和寻找数据集中常见值,mode()
是一个非常有用的工具。它能够返回多个众数,并且可以选择是否忽略缺失值。
更新时间:2024-08-08 16:55:13 标签:pandas python mode 众数