我有以下形式的实验数据,其中每个实验和治疗都重复运行,命中是与特定事件相关的基因:
experiment treatment replicate hit
1 1 1 gene1
1 1 1 gene2
1 1 1 gene1
1 1 1 gene1
1 1 2 gene1
1 1 2 gene1
1 2 1 gene1
1 2 1 gene2
1 2 2 gene2
1 2 2 gene2
我想要做的是计算治疗中每个基因的平均计数。
我可以使用以下方法计算每个实验的基因计数value_counts()
:
counts = df['hit'].groupby([df['experiment'], df['treatment'],
df['replicate']]
).value_counts().unstack()
产生如下输出:
experiment treatment replicate gene1 gene2
1 1 1 3 1
1 1 2 2 NA
1 2 1 1 1
1 2 2 NA 2
但我真正想要的是每次治疗的平均计数,所以(假设用 0 替换 NA):
experiment treatment gene1 gene2
1 1 2.5 0.5
1 2 0.5 1.5
有任何想法吗?应用于.mean()
value_counts 似乎可以计算出所有列的平均值,而不是每个重复。