Pandas-ipython,如何创建具有深入分析能力的新数据框
我觉得我的问题很简单,但为了详细说明,我写了很长的帖子。
我需要把一些数据可视化,但首先我需要进行一些计算,这在Tableau中看起来太麻烦了(如果我说Tableau不好,是不是会被讨厌!)
我有一个普遍的问题,就是如何把我的计算结果以一个好看的格式输出,这样可以在Tableau或者其他工具中可视化,所以需要保留很多信息。
我的数据集是与用户ID相关的应用使用情况,有可能每个用户ID会有多个记录,每条记录包含的信息有:开始使用应用的时间、结束时间、支付的价格、是否使用WiFi,以及其他一些属性(维度)。
我有一年的数据,想做一些事情,比如计算每个月和每个用户在应用中花费的平均时间/总价格,以及整年的数据(记住每个用户会出现多次,每次登录都会有记录)。
我知道一些基础知识,比如添加一列,通过结束时间减去开始时间来计算使用时长,我的Python技能也能正常使用,但数据处理的能力还是很菜。
我的问题是,假设我想计算以下属性(指标,都是按用户ID计算):平均价格、总价格、最大/最小价格、中位数价格、平均时长、总时长、最大/最小时长、中位数时长,以及登录次数(也就是ID出现的次数),这些都要按月和按年计算。我知道我可以计算这些东西,但存储这些数据以便于可视化的最佳方式是什么?
为了提供一些背景,我可能想可视化那些平均支付超过8美元且在应用中总共超过3小时的用户(到目前为止,可以简单创建一个新表格来存储这些信息),但如果我想看到他们观看了哪些节目,以及他们是否使用了WiFi(原始数据集中的其他属性),并且想按月查看,这样的话,单纯的新计算表可能就不够用了。
那么,是否最好创建一个年度表和每个月一个表,总共13个表,每个表都包含在该时间段内的用户ID和所有原始信息,然后为每个计算添加一列(如果计算是平均值,那么我就为每个ID的每个实例输入相同的值)?
我搜索了一下,发现R中的plyr功能可能会有用,但我对Python和使用ipython非常熟悉。我只需要一个包含所有这些信息的好数据集,然后可以导出到可视化软件中,除非你也能推荐一些在ipython中使用的可视化工具 :)
任何帮助都非常感谢,我真心希望在Python中做这件事是合理的,因为在计算方面使用Tableau实在是太痛苦了……请帮帮我 :)
1 个回答
听起来你想要执行一个这样的数据库查询:
SELECT user, show, month, wifi, sum(time_in_pp)
GROUP BY user, show, month, wifi
HAVING sum(time_in_pp) > 3
把它放进数据库里,然后用pandas的SQL接口或者普通的Python查询来运行你的查询。假设你在这些列上给你的数据库表建立了索引。