当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Pandas DataFrame mode方法用法及代码示例


Pandas DataFrame.mode(~) 方法计算 DataFrame 的每列或行的众数。如果某些值的计数相同,则将返回它们的所有众数。

参数

1.axis | intstring | optional

是否按行或按列计算众数:

说明

"index"0

为每列计算众数。

"columns"1

为每一行计算众数。

默认情况下,axis=0

2. numeric_only | Noneboolean | optional

允许的值如下:

说明

True

仅考虑数字行/列(例如 floatintboolean )。

False

尝试使用所有类型(例如字符串和日期)进行计算,并在无法计算众数时抛出错误。

默认情况下,numeric_only=False

3. dropna | boolean | optional

是否忽略 NaN 。默认情况下,dropna=True

返回值

DataFrame 保存源 DataFrame 的每行或每列的模式。

例子

考虑以下 DataFrame :

df = pd.DataFrame({"A":[2,3,3], "B":[3,4,5], "C":[2,2,2]})
df



   A  B  C
0  2  3  2
1  3  4  2
2  3  5  2

逐列模式

按列计算众数:

df.mode()   # or axis=0



   A    B  C
0  3.0  3  2.0
1  NaN  4  NaN
2  NaN  5  NaN

在此,请注意以下事项:

  • 第一列的模式是 3

  • 第二列的模式是 345 因为这些值中的每一个都只出现一次。

  • 由于mode(~) 返回所有模式,因此我们最终得到 3 行,NaN 用于填充空条目。

  • 返回类型为DataFrame

逐行模式

要按行计算模式,请设置 axis=1

df.mode(axis=1)



   0    1    2
0  2.0  NaN  NaN
1  2.0  3.0  4.0
2  2.0  3.0  5.0

指定numeric_only

考虑以下 DataFrame :

df = pd.DataFrame({"A":[4,4], "B":[2,True]})
df



   A  B
0  4  2
1  4  True

这里,B 列包含混合类型。

False

默认情况下, numeric_only=False ,这意味着混合类型的行/列也会被考虑:

df.mode()   # numeric_only=False



   A    B
0  4.0  True
1  NaN  2
True

通过设置 numeric_only=True ,仅考虑数字行/列:

df.mode(numeric_only=True)



   A
0  4

请注意 B 列如何被忽略,因为它包含混合类型。

指定 dropna

考虑以下带有一些缺失值的DataFrame:

df = pd.DataFrame({"A":[3,3,pd.np.nan],"B":[5,pd.np.nan,pd.np.nan]})
df



   A    B
0  3.0  5.0
1  3.0  NaN
2  NaN  NaN

默认情况下, dropna=True ,这意味着所有 NaN 都会被忽略:

df.mode()   # dropna=True



   A    B
0  3.0  5.0

考虑缺失值:

df.mode(dropna=False)



   A    B
0  3.0  NaN

在此,请注意以下事项:

  • 即使列 A 包含 NaN ,也会返回正确的模式 ( 3 )。

  • B 列的众数为 NaN,因为它出现了两次,而值 5 仅出现了一次。

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 Pandas DataFrame | mode method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。