首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算2只熊猫数据的%CV (或仅为标准差和平均值)

计算2只熊猫数据的%CV (或仅为标准差和平均值)
EN

Stack Overflow用户
提问于 2022-06-20 19:35:13
回答 1查看 131关注 0票数 2

我有两只同样长和宽的熊猫数据。我想要找到两个数据的每个单元之间的%CV (或者标准的dev和平均值,然后我可以手工计算CV )。

例如,如果我有这样的东西:

代码语言:javascript
复制
   A B C
0  1 2 3
1  4 5 6 
2  7 8 9 

代码语言:javascript
复制
   A B C
0  3 2 1
1  6 5 4
2  9 8 7

我想返回一个数据,其中包含第一个数据中的A1和第二个数据中的A1之间的标准差/平均值/CV。

例(平均数):

代码语言:javascript
复制
   A B C
0  2 2 2 
1  5 5 5 
2  8 8 8

我想要相同的标准差,然后通过标准偏差/平均值计算%CV。

我已经尝试将数据格式转换为numpy。

代码语言:javascript
复制
stan_dev = np.dstack((arr1.to_numpy(), arr2.to_numpy())).std(axis=2)

但我知道这个错误:

代码语言:javascript
复制
TypeError: loop of ufunc does not support argument 0 of type float which has no callable sqrt method

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-20 20:02:39

您可以使用pandasnumpy来完成这一任务。然而,我对你希望根据2个数据点的标准偏差/变异系数推断出的情况持谨慎态度。

有了这个警告,你会注意到下面的两个答案有一个相似的结构-

将数据集组合成一个通用的container

  • Perform聚合computations

  • Operate,用于计算变异系数

NumPy方法

  • stack将datasets
  • aggregate与axis=0相结合,允许在最低的dimension
  • calculate coef上进行聚合。将variation
  • reassemble结果转换为DataFrame

代码语言:javascript
复制
import numpy as np
import pandas as pd

arr = np.stack((df1, df2))
cv_arr = arr.std(axis=0, ddof=1) / arr.mean(axis=0)
out = pd.DataFrame(data=cv_arr, columns=df1.columns, index=df1.index)

print(out)
          A    B         C
0  0.707107  0.0  0.707107
1  0.282843  0.0  0.282843
2  0.176777  0.0  0.176777

纯熊猫法

  • pd.concat组合数据集并指定keys参数以获得使用MultiIndex表示高于2d
  • 组的数据,以便跨groups
  • .swaplevels操作以更好地利用索引alignment
  • use .pipe计算变异系数

代码语言:javascript
复制
import pandas as pd

out = (
    pd.concat([df1, df2], keys=[0, 1])
    .groupby(level=1)
    .agg(['mean', 'std'])
    .swaplevel(axis=1)
    .pipe(lambda df_: df_['std'] / df_['mean'])
)

print(out)
          A    B         C
0  0.707107  0.0  0.707107
1  0.282843  0.0  0.282843
2  0.176777  0.0  0.176777

我个人推荐numpy解决方案,因为这些数据和分析用3d数组比分层DataFrame更好地表示。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72692151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档