Python:计算Python数据帧中每个数字的出现次数

2024-10-01 00:23:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个用于项目集挖掘的数据集。我想查找每个唯一编号的出现情况,即候选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)

Tags: csv数据项目距离np事件情况all
1条回答
网友
1楼 · 发布于 2024-10-01 00:23:10

首先请注意,如果您有一个普通的csv(逗号分隔),您应该使用sep=','。这是因为'\t'假定TAB作为分隔符

也可以考虑在^ {{CD4}}调用中添加^ {CD3>},否则第一行将作为数据帧中的列名。

最后,由于列的长度不同,因此所有列中的nan值都比最长的列短,要删除这些值,可以在获取唯一值时屏蔽所有nan值。类似于values[np.logical_not(np.isnan(values))],但请参见下文


把事情放在一起:

dataset = pd.read_csv('dataset.csv', sep=',', header=None)

all_values = dataset.values.ravel()

您可以直接使用^{} from numpy,它允许获取每个唯一值的计数:

import numpy as np
notNan = np.logical_not(np.isnan(all_values))
distinct, counts = np.unique(all_values[notNan], return_counts=True)

如果您关心频率,只需将counts除以all_values[notNan].size


下面是一个简单的例子(来自上面链接的文档)来强调np.unique是如何工作的:

>>> import numpy as np
>>> a = np.array([1, 2, 6, 4, 2, 3, 2])
>>> values, counts = np.unique(a, return_counts=True)
>>> values  # list of all unique values in a
array([1, 2, 3, 4, 6])
>>> counts  # count of the occurrences of each value in values
array([1, 3, 1, 1, 1])

相关问题 更多 >