2017-11-27 41 views
1

みましょう私は、次のデータフレームを持っていると言う:ペア行間の結果の差異を計算するにはどうすればよいですか?

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]) 

出力:

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

どういたしまして@MEhsan。私は解決策を修正するために編集を感謝します。 –

関連する問題