如何将数据从时间戳修改为每个用户每天的消耗量?
Posted
技术标签:
【中文标题】如何将数据从时间戳修改为每个用户每天的消耗量?【英文标题】:How can I modify data from timestamps to consumption per day per user? 【发布时间】:2017-01-25 20:07:18 【问题描述】:对于我的经济学学士学位,我需要分析能源消耗数据。但是,我收到了一些以某种格式交付的数据集,我无法修改这些数据以使其对我有用并能够使用 Stata 进行分析。
我有一些 Python 和 SQL 方面的基本技能,但是到目前为止,我的最后一个数据集还没有成功完成我的论文。我会很感激你的帮助:)
问题: 我得到了一个包含 3 列和 2300 万行的数据集。这 3 列分别是时间戳、用户(大约 130 个用户)和消耗(瓦特/秒)。
Example of data set in Access
在第一个例子中,你可以看到一些用户有负消费。
那些用户与我的研究无关,所有消费值为负的用户都可以删除。我怎样才能轻松做到这一点?
在第二个示例中,给出了原始数据集。时间戳基于大约 10-15 秒的间隔并且是连续的。因此测量 1458185209 是在使用时间戳 1458185109 测量后 10-15 秒。这些时间戳是匿名生成的。但是,我知道测量的确切开始和结束时间和日期。
根据这些信息,我想计算每位用户每天的平均消耗量(单位为千瓦/小时)。假设数据集中每个用户有 300.000 个测量点。测量总时间为2个月。因此,用户的平均消费可以通过从时间戳 1 到时间戳 4918(300.000/61 天)取平均值来计算。
我想在给定时间段内的所有日子里为所有用户执行此操作。
我在 Acces、Python 和 mysql 方面有一些基础知识。但是,我尝试过的所有计算机都在 Access 中遇到了 2300 万行的问题。在 Access 中,我根本无法“玩”它,因为每次迭代都需要我大约半小时。也许可以选择编写一个 python 脚本?
如前所述,我是经济学专业的学生,而不是数据科学专业的学生,所以我真的希望您能帮助我解决这个问题。我愿意接受任何建议!我试图尽可能具体地描述问题,如果有不清楚的地方请告诉我:)
非常感谢!
【问题讨论】:
MS Access 不适合这个数据库。 Stack Overflow 不是为了推荐,但我会提到 Postgres、SQL Server Express、BigQuery(试用版)作为提供更好功能的免费解决方案。 【参考方案1】:您的数据集上是否定义了任何索引?将索引放在用户、时间戳上,用户和时间戳都可以大大提高某些查询的性能。
在处理大量数据时,最好将尽可能多的计算偏移到数据库中,并且只将已处理的内容拉入 Python 中进行进一步分析。
【讨论】:
以上是关于如何将数据从时间戳修改为每个用户每天的消耗量?的主要内容,如果未能解决你的问题,请参考以下文章
根据python中训练和测试集中的时间戳为每个用户拆分数据集
如何使mysql在每次修改行操作时自动将列更新为当前时间戳?