我有一个.csv文件,格式为:
Username, Datetime
user1, datetime1
user1, datetime2
user2, datetime3
user2, datetime4
user2, datetime5
user3, datetime6
user1, datetime7
user2, datetime8
该文件有时可能非常大(有时多达300000多名用户)。我想比较日期时间对象,看看一个特定用户的日期时间对象是否在X天内。
执行这项任务的有效方法是什么?显然,我不想比较不同用户的日期时间对象,所以先创建一些数据结构(比如字典)明智吗?
我在想,创建一个形式为的字典可能就足够了
{user1: [datetime1, datetime2, datetime7],
user2: [datetime3, datetime4, datetime5, datetime8], ... }
然后迭代每个用户的每个日期时间组合?有没有一种更快、更有效的方法来进行比较?
创建一个字典意味着一次将所有300k多条记录存储在内存中,这可能不是您想要的。
如果csv文件先按用户排序,然后按时间戳排序,那么您一次只需要读取和处理一行,这似乎非常有效。