gpt4 book ai didi

python - Pandas : compute mean or std (standard deviation) over entire dataframe

转载 作者:IT老高 更新时间:2023-10-28 22:15:04 24 4
gpt4 key购买 nike

这是我的问题,我有一个这样的数据框:

    Depr_1  Depr_2  Depr_3
S3 0 5 9
S2 4 11 8
S1 6 11 12
S5 0 4 11
S4 4 8 8

我只想计算整个数据帧的平均值,因为以下方法不起作用:

df.mean()

然后我想出了:

df.mean().mean()

但是这个技巧不适用于计算标准差。我最后的尝试是:

df.get_values().mean()
df.get_values().std()

除了后一种情况,它使用 numpy 的 mean() 和 std() 函数。平均值不是问题,但它是 std,因为 pandas 函数默认使用 ddof=1 ,不像 numpy 的 ddof=0 .

最佳答案

您可以使用 stack 将数据框转换为单列(这会将形状从 5x3 更改为 15x1),然后取标准差:

df.stack().std()         # pandas default degrees of freedom is one

或者,您可以在获取标准差之前使用 values 从 pandas 数据帧转换为 numpy 数组:

df.values.std(ddof=1)    # numpy default degrees of freedom is zero

与pandas不同,numpy默认会给出整个数组的标准差,所以在取标准差之前不需要reshape。

补充几点:

  • 这里的 numpy 方法比 pandas 方法快一点,当您可以选择使用 numpy 或 pandas 完成相同的事情时,这通常是正确的。速度差异取决于数据的大小,但当我在笔记本电脑上测试几个不同大小的数据帧(numpy 版本 1.15.4 和 pandas 版本 0.23.4)时,numpy 大约快 10 倍。

  • 这里的 numpy 和 pandas 方法不会给出完全相同的答案,但会非常接近(在几位精度上相同)。差异是由于幕后实现的细微差别会影响浮点值的四舍五入方式。

关于python - Pandas : compute mean or std (standard deviation) over entire dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25140998/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com