value_counts() 计算数据帧中的 NaN

Pet*_*ete 3 python nan pandas

我创建了一个由两列组成的数据框。我想计算这两列出现的次数。

数据框看起来像 -

No Name
1   A  
1   A
5   T
9   V
Nan M
5   T
1   A
Run Code Online (Sandbox Code Playgroud)

我想使用 value_counts() 来获取这样的数据框-

No Name Count
1   A     3
5   T     2
9   V     1
Nan M     1
Run Code Online (Sandbox Code Playgroud)

我试过df[["No", "Name"]].value_counts()计算除 nan 行以外的所有内容。有没有办法使用 value_counts() 来计数Nan

Tai*_*aie 35

您仍然可以使用 value_counts() 但 dropna=False 而不是 True (默认值),如下所示:

df[["No", "Name"]].value_counts(dropna=False)
Run Code Online (Sandbox Code Playgroud)

所以,结果将如下:

   No   Name    size
0   1     A     3
1   5     T     2
2   9     V     1
3   NaN   M     1
Run Code Online (Sandbox Code Playgroud)


per*_*erl 5

你可以用groupbydropna=False

df.groupby(['No', 'Name'], dropna=False, as_index=False).size()
Run Code Online (Sandbox Code Playgroud)

输出:

    No Name  size
0  1.0    A     3
1  5.0    T     2
2  9.0    V     1
3  NaN    M     1
Run Code Online (Sandbox Code Playgroud)

PS 有趣的是,pd.Series.value_counts方法也支持dropna参数,但pd.DataFrame.value_counts方法不支持