2017-11-27 3 views
1

하자 내가 다음 dataframe이 있다고 :쌍을 이루는 행 간의 결과 차이를 계산하는 방법은 무엇입니까?

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

가 어떻게 Sample_Type에서 동일한 유전자에 대한 test_result 값 사이의 차이를 계산 할 수 있습니까?

원하는 출력은 다음과 같습니다

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

어떤 생각 방법이 문제를 해결하기 위해?

답변

2

사용 groupbyextract :

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

출력 :

천만에요 @MEhsan
Sample_Type 
GeneA 5 
GeneB 8 
Name: test_result, dtype: int64 
+0

. 해결책을 고치는 편집에 감사드립니다. –

관련 문제