Python:按行数聚合数据

时间:2015-06-16 13:01:36

标签: python aggregate

我尝试在Python中以各种不同的方式聚合this呼叫中心数据,例如按类型和优先级表示q_time。使用df.groupby非常简单。

但是,我还希望能够按通话量进行汇总。问题是数据的每一行代表一个电话,所以我不知道该怎么做。如果我只是按日期分组,那么我可以使用'count'作为聚合函数,但是如何通过例如聚合来聚合工作日,即创建一个数据框,如:

weekday    mean_row_count
   1           100
   2           150
   3           120
   4           220
   5           200
   6           30
   7           35  

这样做有好办法吗?我能想到的只是循环每个工作日并计算唯一日期的数量,然后将每个工作日的计数除以唯一日期的数量,但我认为这可能会变得混乱,如果我还需要组合,可能会非常慢通过其他变量,或按一天中的日期和小时来做。

2 个答案:

答案 0 :(得分:0)

由于给出了每次通话的日期,因此一个想法是实现一个函数来确定给定日期的星期几。有很多方法可以做到这一点,比如康威的世界末日算法。 https://en.wikipedia.org/wiki/Doomsday_rule

然后可以通过每一行,确定工作日,并添加每个工作日的计数。

答案 1 :(得分:0)

当我发现自己在思考如何以多种方式聚合和查询数据时,它认为解决方案可能是一个数据库。 SQLite是一个轻量级嵌入式数据库,具有针对简单用例的高性能,以及Python及其本机支持。

我的建议是:为您的数据创建数据库和表,最终根据您的需要添加辅助表,将数据加载到其中,并使用交互式sqlite或Python脚本进行查询。