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

Python:计算Python数据帧中每个数字的出现次数,python,pandas,dataframe,data-mining,Python,Pandas,Dataframe,Data Mining,我有一个用于项目集挖掘的数据集。我想查找每个唯一编号的出现情况,即候选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_va

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

也可以考虑在<代码> Read Syvv < /Cult>调用中添加<代码>头= NON/<代码>,否则,第一行将作为数据帧中的列名。

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


把事情放在一起:

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

all_values = dataset.values.ravel()
您可以直接使用它来获取每个唯一值的计数:

import numpy as np
notNan = np.logical_not(np.isnan(all_values))
distinct, counts = np.unique(all_values[notNan], return_counts=True)
如果您关心频率,只需将
计数
除以
所有值[notNan]。大小


下面是一个简单的示例(来自上面链接的文档),以突出显示
np.unique
的工作原理:

>>将numpy作为np导入
>>>a=np.数组([1,2,6,4,2,3,2])
>>>值,计数=np.unique(a,返回计数=True)
>>>值#列表中所有唯一值
数组([1,2,3,4,6])
>>>计数#每个值在值中出现的计数
数组([1,3,1,1,1])

谢谢,我根据您的建议更新了代码。请看一下我对我的帖子所做的更新。你能解释一下输出吗?distinct数组正在计算一些数字,但这些数字在重复时肯定不是唯一的值。对吗?而且计数数组都是1。请详细说明,谢谢。但正如您所看到的,事件distint返回的数组具有多个0和10等,因此这实际上不是唯一的。这里的原因是什么?请注意,我的数据集是3000x1。我还添加了一个excel屏幕截图,使可视化更清晰。没错。我想把他们分开处理。我更新了代码,但出现了一个错误。请参阅update-2。我希望在整个csv中获得唯一的值。例如,计算每个唯一项集在整个数据集中23项的出现次数,等等。最后,我想返回一个包含两列的表。第一列是唯一的项目集值,下一列包含该项目集在整个csv中的总出现次数。没有具体的理由选择熊猫,我也可以自由使用其他数据加载程序。