我有一个用于项目集挖掘的数据集。我想查找每个唯一编号的出现情况,即候选1项集
数据的形状为3000x1。我不知道如何计算唯一的事件
存储数据的距离值列表
使用ndarray distinct,如何查找数据集中每个项目的频率
更新 通过@jojo help获得了解决方案
df = pd.read_csv('sample.csv', sep=',')
all_values = dataset.values.ravel()
notNan = np.logical_not(np.isnan(all_values))
distinct, counts = np.unique(all_values[notNan], return_counts=True)
首先请注意,如果您有一个普通的csv(逗号分隔),您应该使用
sep=','
。这是因为'\t'
假定TAB作为分隔符也可以考虑在^ {{CD4}}调用中添加^ {CD3>},否则第一行将作为数据帧中的列名。
最后,由于列的长度不同,因此所有列中的
nan
值都比最长的列短,要删除这些值,可以在获取唯一值时屏蔽所有nan
值。类似于values[np.logical_not(np.isnan(values))]
,但请参见下文把事情放在一起:
您可以直接使用^{} from numpy ,它允许获取每个唯一值的计数:
如果您关心频率,只需将
counts
除以all_values[notNan].size
下面是一个简单的例子(来自上面链接的文档)来强调
np.unique
是如何工作的:相关问题 更多 >
编程相关推荐