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