我正在处理这样的数据:
Sample Detector Cq
P_1 106 23.53152
P_1 106 23.152458
P_1 106 23.685083
P_1 135 24.465698
P_1 135 23.86892
P_1 135 23.723469
P_1 17 22.524242
P_1 17 20.658733
P_1 17 21.146122
正如这篇文章中所建议的,我正在使用 MultiIndex 来处理它。但是,我想知道如何使用这样的结构进行一些额外的检查。让我们更好地解释一下:每个“样本”列都有固定数量的重复“检测器”元素,从 1(无重复)到多个重复元素。我想确保对于每个样本元素,检测器的数量始终相同(即,如果 P_1 有 3 个“106”检测器,则 P_2 也应该有 3 个“106”检测器)。
目前我这样做相当粗略:
def replicate_counter(dataframe, name):
subset = dataframe.ix[name]
num_replicates = subset.index.size / subset.index.unique().size
return num_replicates
# Further down...
# dataframe is a MultiIndex DataFrame like above
counts = pandas.Series([replicate_counter(dataframe, item[0]) for item
in dataframe.index]).unique()
if counts.size != 1:
raise ValueError("Detectors not equal for all samples")
对我来说这似乎很 hacky,可能有更好的方法在 pandas 中做到这一点。这怎么可能实现?