在数据帧上使用 value_counts() 时计算 NaN

问题描述 投票:0回答:2

我想计算 DataFrame 两列的出现次数:

No Name
1   A  
1   A
5   T
9   V
Nan M
5   T
1   A

我期望

df[["No", "Name"]].value_counts()
给予

No Name Count
1   A     3
5   T     2
9   V     1
Nan M     1

但是我缺少包含 NaN 的行。

有没有办法将 NaN 包含在 value_counts() 中?

python pandas nan
2个回答
34
投票

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

df[["No", "Name"]].value_counts(dropna=False)

所以,结果如下:

   No   Name    size
0   1     A     3
1   5     T     2
2   9     V     1
3   NaN   M     1

9
投票

您可以将

groupby
dropna=False
一起使用:

df.groupby(['No', 'Name'], dropna=False, as_index=False).size()

输出:

    No Name  size
0  1.0    A     3
1  5.0    T     2
2  9.0    V     1
3  NaN    M     1

附注有趣的是,

pd.Series.value_counts
方法也支持
dropna
参数,但
pd.DataFrame.value_counts
方法不支持

© www.soinside.com 2019 - 2024. All rights reserved.