Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。本文主要介绍一下Pandas中pandas.DataFrame.mode方法的使用。

DataFrame.mode(self, axis=0, numeric_only=False, dropna=True) → 'DataFrame'   

[source]

获取沿选定轴的每个元素的mode(s) 。

一组值的mode是最常出现的值。它可以是多个值。

参数

axis : {0 或 ‘index’, 1 或 ‘columns’}, 默认为0

搜索mode时要迭代的axis:

1) 0或'index':获取各列的mode

2) 1或'columns':获取每一行的mode。


numeric_only : bool,默认为False

如果为True,则仅适用于数字列。

dropna :bool,默认为True

不要考虑NaN / NaT的计数。

0.24.0版中的新功能。

返回值

DataFrame

每列或每行的mode

例子

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。第二行的种类和NaN分支包含,因为它们只有一种模式,但是DataFrame有两行

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,仅计算数字列的模式,而忽略其他类型的列

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