【问题标题】:count of unique values in pandas dataframe column熊猫数据框列中唯一值的计数
【发布时间】:2017-01-08 15:53:00
【问题描述】:

我正在尝试在 pandas 数据框的列中查找唯一值的频率,我知道如何获得这样的唯一值:

data_file.visiting_states()

返回:

array(['CA', 'VA', 'MT', nan, 'CO', 'CT'],    dtype=object)

我想返回那些唯一值的计数,我知道我不能做 .value_counts() 因为它是一个 numpy 数组

【问题讨论】:

  • 我不能做 .value_counts() 因为它是一个 numpy 数组,只需将其转换为系列! pandas.Series(my_array).value_counts()

标签: pandas numpy unique


【解决方案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

【讨论】:

  • 我想知道每个州的计数,即 CA 为 5,VA 为 4 等
  • 那么需要value_counts - print (data_file.visiting_states.value_counts())
  • 这不起作用,它表示未定义值计数
  • 好的,返回什么 print (type(data_file.visiting_states)) 和什么 print (type(data_file.visiting_states.iloc[0]))
  • 如果我的回答有帮助,别忘了accept。谢谢。
猜你喜欢
  • 1970-01-01
  • 2018-08-16
  • 1970-01-01
  • 2016-05-18
  • 1970-01-01
  • 2015-01-30
  • 2017-05-30
  • 1970-01-01
相关资源
最近更新 更多