我试图在pandas数据帧的列中找到唯一值的频率我知道如何获取这样的唯一值:
data_file.visiting_states()
返回:
array(['CA', 'VA', 'MT', nan, 'CO', 'CT'], dtype=object)
我希望返回那些唯一值的计数,我知道我不能.value_counts(),因为它是一个numpy数组
答案 0 :(得分:1)
您可以使用nunique
:
data_file = pd.DataFrame({'visiting_states':['CA', 'VA', 'MT', np.nan, 'CO', 'CT','CA',
'VA', 'MT', np.nan, 'CO', 'CT']})
print (data_file)
visiting_states
0 CA
1 VA
2 MT
3 NaN
4 CO
5 CT
6 CA
7 VA
8 MT
9 NaN
10 CO
11 CT
print (data_file.visiting_states.nunique())
5
print (data_file.visiting_states.nunique(dropna=False))
6
arr = np.array(['CA', 'VA', 'MT', np.nan, 'CO', 'CT'], dtype=object)
print (arr)
['CA' 'VA' 'MT' nan 'CO' 'CT']
print (len(arr))
6