我想计算 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() 中?
您仍然可以使用 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
您可以将
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
方法不支持