【发布时间】:2013-02-07 06:21:15
【问题描述】:
我有以下形式的实验数据,其中每个实验和处理都重复运行,命中是与特定事件相关的基因:
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 似乎可以计算出所有列的平均值,而不是每次重复。
【问题讨论】: