value_counts() 计算数据框中的 NaN
value_counts() to count NaNs in a dataframe
我创建了一个包含两列的数据框。我想计算这两列的出现次数。
数据框看起来像-
No Name
1 A
1 A
5 T
9 V
Nan M
5 T
1 A
我想使用 value_counts() 来获得这样的数据框-
No Name Count
1 A 3
5 T 2
9 V 1
Nan M 1
我尝试做 df[["No", "Name"]].value_counts()
计算除了 nan 行之外的所有内容。有没有办法使用 value_counts() 来计算 Nan
呢?
您可以将 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
P.S。有趣的是,pd.Series.value_counts
方法也支持 dropna
参数,但 pd.DataFrame.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
我创建了一个包含两列的数据框。我想计算这两列的出现次数。
数据框看起来像-
No Name
1 A
1 A
5 T
9 V
Nan M
5 T
1 A
我想使用 value_counts() 来获得这样的数据框-
No Name Count
1 A 3
5 T 2
9 V 1
Nan M 1
我尝试做 df[["No", "Name"]].value_counts()
计算除了 nan 行之外的所有内容。有没有办法使用 value_counts() 来计算 Nan
呢?
您可以将 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
P.S。有趣的是,pd.Series.value_counts
方法也支持 dropna
参数,但 pd.DataFrame.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