當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。