假设我有以下数据框:
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
知道如何解决这个问题吗?
答案 0 :(得分:2)
使用groupby
和extract
:
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