gpt4 book ai didi

python - pandas : how to apply scipy. 对 groupby 对象的统计测试?

转载 作者:太空宇宙 更新时间:2023-11-04 03:41:29 26 4
gpt4 key购买 nike

我有一个这样的数据框:

   1       2
0 P 214233
1 P 130435
2 P 258824
3 P 75488
4 C 101215
5 C 105793
6 C 101591

例如,我想执行 Wilcoxon 秩和检验。为什么以下命令不起作用?

import scipy.stats as ss
df.groupby(1).apply(ss.ranksums)

我认为它不起作用,因为 scipy 无法识别该组:

TypeError: ranksums() takes exactly 2 arguments (1 given)

如何实现这一目标?无需手动执行 groupby :

ss.ranksums(df[df[1]=="C"][2], df[df[1]=="P"][2])

方差分析也有同样的问题:

如果数据框是这样的:

   1       2
0 P 214233
1 P 130435
2 A 258824
3 A 75488
4 A 101215
5 C 105793
6 C 101591

但是这里的错误是:

TypeError: can't multiply sequence by non-int of type 'str'

谢谢

最佳答案

这有效。

values_per_group = [col for col_name, col in df.groupby(1)[2]]
ss.ranksums(*values_per_group)

关于python - pandas : how to apply scipy. 对 groupby 对象的统计测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26202930/

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