按类别过滤数据以进行Python中的统计测试

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (148)

我正在使用数据框来执行Python测试。

Group    Count 
B        21 
B        13 
A        25 
A        75 
A        11 
B        15 

只要它只适用于一个部分或类别,测试就可以了:

import pandas as pd
import scipy.stats as stats
valuespergroup = [col for col_name, col in df.groupby('Group')['Count']]
stats.ranksums(*valuespergroup)

现在,请考虑以下事项:

Category Group  Count
S1  P   21
S1  P   13
S1  A   25
S1  A   75
S1  A   10
S1  P   10
S2  P   21
S2  P   14
S2  A   29
S2  A   95
S2  A   15
S2  P   18

我需要按类别处理,这意味着首先传递S1的数据,然后传递S2等。我尝试将类别放入groupby中,但它不起作用。该函数仅使用两个参数。

提问于
用户回答回答于

似乎你需要 groupby 'Group','Category'

for x , y in df.groupby(['Group','Category'])['Count']:
    print(x,y)



('A', 'S1') 2    25
3    75
4    10
Name: Count, dtype: int64
('A', 'S2') 8     29
9     95
10    15
Name: Count, dtype: int64
('P', 'S1') 0    21
1    13
5    10
Name: Count, dtype: int64
('P', 'S2') 6     21
7     14
11    18
Name: Count, dtype: int64

扫码关注云+社区

领取腾讯云代金券