【问题标题】:Pandas-ipython, how to create new data frames with drill down capabilitiesPandas-ipython,如何创建具有向下钻取功能的新数据框
【发布时间】:2014-09-26 07:04:40
【问题描述】:

我认为我的问题很简单,但我发了很长的帖子以求彻底。

我需要可视化一些数据,但首先我需要执行一些在 Tableau 中看起来过于繁琐的计算(如果我说 tableau 很烂,我会讨厌吗!)

我有一个普遍的问题,即如何以一种可以在 Tableau 或其他东西中可视化的良好格式输出我的计算数据,因此它需要保留大量信息。

我的数据集是一些与用户 ID 使用应用程序相关联的字段。因此,每个用户 ID 可能有多个条目,并且每个条目(记录)在列中都有信息,例如他们开始使用应用程序的时间、结束时间、他们支付的价格、他们是否在 wifi 上以及其他属性(维度)。

我有一年的数据,并且想做一些事情,例如计算每个用户每个月和全年在应用中支付的平均/总持续时间/价格(请记住,每个用户都会出现多次 - 每次他们签名时)中)。

我知道一些基础知识,比如添加一个从结束时间减去开始时间的列,以获得花费的时间,我的 python 功能齐全,但我的数据能力很业余。

我的问题是,假设我想要计算以下属性(度量)(所有每个用户 ID):平均价格、总价格、最高/最低价格、中值价格、平均持续时间、总持续时间、最长/最短持续时间、中值持续时间和登录次数(即 id 实例的数量),所有这些都基于每月和每年。我知道我可以计算这些东西中的每一个,但是存储它们以用于可视化的最佳方法是什么?

对于上下文,我可能想要可视化平均支付超过 8 美元并且在应用程序中总共使用超过 3 小时的用户组(此时可以使用信息创建一个简单的新表)但是如果我想要他们观看的节目以及他们是否在 wifi 上(原始数据集中的其他属性),并且我希望看到它每月分解,看起来我的新计算表不会削减它。

那么最好为总共 13 个表创建一个年度表和一个每个月的表,每个表都包含该时间段内的用户 ID 以及所有原始信息,然后为每个计算附加一个列(如果 calc 是 avg,那么我为每个 id 实例输入相同的值?

我搜索并发现也许 R 中的 plyr 功能会很有用,但我对 python 和使用 ipython 非常熟悉。我只需要一个包含所有这些信息的漂亮数据集,然后可以将其导出到可视化软件中,除非您还可以在 ipython 中建议可视化工具:)

非常感谢任何帮助,我非常希望在 python 中执行此操作是有意义的,因为画面对于事物的计算方面来说只是痛苦的......请帮助 :)

【问题讨论】:

    标签: python pandas


    【解决方案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 查询运行您的查询。大概您在这些列上为您的数据库表建立索引。

    【讨论】:

    • 工作中有人建议使用 SQL 进行数据库查询,也许我只是天真,但似乎这不会让我进行可视化。我最终希望在 Tableau 中有一个可以可视化的数据集,所以我希望使用 Pandas 在 ipython 中创建这个数据集,然后将其导出为 excel 文件。
    • 我没有建议排除创建 excel 或 CSV 文件的可能性。在这里查看:pandas.pydata.org/pandas-docs/stable/io.html
    • 我不确定您是否会为这个问题得到一个非常有启发性的答案,因为它非常广泛。存储数据的最佳方式很大程度上取决于您要创建的可视化类型。时间序列需要以不同于直方图的方式处理... Python+Pandas+IPython+Matplotlib 几乎可以用来做任何你想做的事情。尤其是 Pandas 可以轻松地操纵数据。如果您将要查找的内容缩小到一个非常具体的问题 - 如何从 a 转到 b,我相信很多人会帮助指导您。
    • 感谢您的所有指导。例如,我可以计算每个用户一年中的平均持续时间,然后创建一个直方图以显示每年的平均持续时间作为用户数量的分布,但我丢失了所有其他信息,例如这些用户是否主要使用 wifi以及他们每月所做的事情,所以我需要以某种方式参考原始数据。我的首要问题是人们如何最有效地在他们的计算和他们的可视化之间来回切换......这只是为你想要的每个可视化单独进行计算的问题吗?
    猜你喜欢
    • 2018-07-23
    • 2023-03-12
    • 2017-03-29
    • 2018-10-06
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 2017-02-20
    相关资源
    最近更新 更多