python - 使用计算日期范围内出现次数的算法来分析 python 列表

标签 python algorithm

下面显示了我拥有的一些数据的结构(格式:列表的列表)

data = 
[ 
  [1,2008-12-01],
  [1,2008-12-01],
  [2,2008-12-01]
  ... (the lists continue)
]

日期范围为2008年12月1日至2008年12月25日。

第一个字段通过 ID 标识用户,第二个字段(日期字段)显示该用户访问我网站上的页面的时间。

我需要分析这些数据,以便得到以下结果

1 天访问了 25 位用户
2天内访问了100名用户
4天内访问了300名用户
...长达 25 天

我正在使用 python,但不知道从哪里开始!

编辑

很抱歉,我似乎不太清楚自己需要什么,因为有些人给出的答案不是我想要的。

我需要找出全天有多少用户访问过,例如
25 天(或每天)有 10 位用户访问过

然后我希望为从 1 到 25 的每个频率列出相同的内容。因此按照上面我的原始示例
25 位用户仅访问了一天(25 位用户中)
2 天中有 100 位用户访问过(共 25 天)
等等

我不需要知道每天有多少人访问
谢谢

最佳答案

你的结果是一本字典,对吗?

{ userNumber: setOfDays }

如何开始呢?

from collections import defaultdict
visits = defaultdict(set)
for user, date in someList:
    visits[user].add(date)

这将为您提供一本字典,其中包含他们访问的一组日期。

counts = defaultdict(int)
for user in visits:
    v= len(visits[user])
    count[v] += 1

这将为您提供一个包含 # 次访问的字典,以及访问次数相同的用户数量。

这是您正在寻找的东西吗?

关于python - 使用计算日期范围内出现次数的算法来分析 python 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/433669/

相关文章:

python - 如何确保 pip 从内部 pypi 获取包?

python - 在 C++ 中可能等效于 Python `exec`

python - 如何对特定行上的 numpy 数组进行排序,并相应地更改其他行?

c - 如何实现具有惰性传播的线段树?

java - 如何使用 3 个数组的数据实现二叉树的中序、前序和后序遍历

algorithm - SCIP 如何使用 NEOS Server?

algorithm - 我应该使用什么数据结构/算法 - 面试问题

python - 尝试 TCP 连接时 while() 中出现奇怪的 print() 输出

ruby - 解析大型标准输入 ruby

python - 通过 Sklearn 的 RFECV(带交叉验证的递归特征消除)选择特定数量的特征