我有一个这样data
布局的 DataFrame:
Observation A_1 A_2 A_3 B_1 B_2 B_3
Obs1 yes no yes no no no
Obs2 no no no yes yes yes
Obs3 yes yes yes yes yes yes
目标:计算所有标记为“是”的观察的频率,即:
- 仅在“A”样本中
- 仅在“B”样本中
- 在两组
编辑:这意味着对于前两个计数,我需要排除A 组和 B 组包含“是”的观察结果(见第三行)。
我考虑过使用groupby
:
grouper = data.groupby(lambda x: x.split("_")[0], axis=1)
grouped = grouper.agg(lambda x: sum(x == "yes"))
但是我的计数除以行,这不是我想要的。
这里最好的行动是什么?
编辑:根据要求,有关输出的更多信息。我想要类似的东西
Frequency of valid [meaning "yes"] observations in group A: X
Frequency of valid observations in group "B": Y
Frequency for all valid observations: Z
其中 X、Y 和 Z 是返回的计数。
对于个人观察,我不关心这个特定的输出。我对所有这些值都感兴趣。