【问题标题】:How can I get the ".describe()" statistics over all numerical columns, nested or not?如何获取所有数字列的“.describe()”统计信息,无论是否嵌套?
【发布时间】:2020-10-04 16:33:13
【问题描述】:

获取数据帧(或列表或数组)中任何列的简单描述性统计信息的最佳方法是什么,无论是否嵌套,一种高级 df.describe () 也包括带有数值的嵌套结构。

就我而言,我有一个包含许多列的数据框。有些列的每一行都有一个数字列表(在我的例子中是一个时间序列结构),这是一个嵌套结构。

这样的嵌套结构是指:

  • 数组列表,
  • 数组数组,
  • 一系列列表,
  • 在某些列中具有嵌套数值列表的数据框(我的情况)

如何一次性从任何层次的嵌套结构中获取简单的描述性统计数据?

要求

df.describe() 

只会给我数字列的统计信息,而不是包含数值列表的列的统计信息。 我无法仅通过申请获得统计数据

from scipy import stats
stats.describe(arr)

因为它是How can I get descriptive statistics of a NumPy array? 中针对非嵌套数组的解决方案。

【问题讨论】:

    标签: python-3.x pandas numpy multidimensional-array scipy.stats


    【解决方案1】:

    我的第一种方法是首先获取每个数字列表的统计信息,然后再次获取该统计信息,例如平均值的平均值或方差的平均值也会给我一些信息。 在我的第一种方法中,我首先将具有嵌套数值列表的特定列转换为一系列嵌套列表。嵌套数组或列表可能需要稍作调整,未经测试。

    NESTEDSTRUCTURE = df['nestedColumn']

    [stats.describe([a[x] for a in [stats.describe(x) for x in NESTEDSTRUCTURE]]) for x in range(6)]
    

    为您提供嵌套结构列的统计信息。如果你想要一列所有均值的平均值,你可以使用

    stats.describe([a[2] for a in [stats.describe(x) for x in NESTEDSTRUCTURE]])
    

    因为位置 2 在

    中代表“平均”

    DescribeResult(nobs=, minmax=(, ), mean=, variance=, skewness=, 峰度=)

    我希望有一种更好的描述性统计方法,它也应该自动理解具有数值的嵌套结构,这只是一种解决方法。

    【讨论】:

    • 没有更好的办法。统计数据需要统一的数字参数,例如数字 numpy 数组。重新思考为什么你有讨厌的嵌套结构。它们不会使计算更快或更容易。
    • 我也可以将嵌套结构转换为 df/array,每个前一个列表项有一列。由于我的嵌套结构涵盖了时间序列数据,因此拥有数以百计的列统计信息并不是那么有用,如果它是关于在最一般级别上探索时间序列数据的话。然后你的回答又是有道理的,没有其他办法,它只是关于你需要什么样的统计细节:在 list item level 或 list aggregation level ,并且可能没有自动化方法,因为这只是您必须做出的决定。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-26
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 2011-12-13
    相关资源
    最近更新 更多