我创建了一个由两列组成的数据框。我想计算这两列出现的次数。
数据框看起来像 -
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)
你可以用groupby与dropna=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方法不支持