如何计算成对行之间的结果差异?

时间:2017-11-27 21:48:14

标签: python-3.x pandas group-by

假设我有以下数据框:

  Sample_Type  test_result
GeneA(normal)    10
 GeneA(tumor)     5
GeneB(normal)     2
 GeneB(tumor)    -6

如何计算test_result下相同基因的Sample_Type值之间的差异?

所需的输出是:

              Sample_Type  diff_value
GeneA(normal)-GeneA(tumor)          5
GeneB(normal)-GeneB(tumor)         10 

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

使用groupbyextract

df.groupby(df.Sample_Type.str.extract('(\w+{5})', expand=False))['test_result'].apply(lambda x: x.iloc[0]-x.iloc[1])

输出:

Sample_Type
GeneA    5
GeneB    8
Name: test_result, dtype: int64