作業

2017-06-09 6 views
2

は、私は次のようなパンダのデータフレームを持っている:作業

df = pd.DataFrame({ 0: (188, 750, 1330, 1385, 188, 750, 1330, 1385), 
        4: (51.12, 51.45, 74.49, 29.21, 39.98, 3.98, 14.46, 16.51), 
        6: pd.Categorical(['R', 'R', 'R', 'R', 'F', 'F', 'F', 'F']) }) 
df = df.set_index([0]) 

df 
      4 6 
0    
188 51.12 R 
750 51.45 R 
1330 74.49 R 
1385 29.21 R 
188 39.98 F 
750 3.98 F 
1330 14.46 F 
1385 16.51 F 

どのように私はインデックスのそれぞれについて、RのものからF内の値を引くことができますか? たとえば、この場合には、出力は次のようになります。

 result 
0   
188 11.14 
750 47.47 
1330 60.03 
1385 12.70 

答えて

1

は、減算はインデックスに整列するあなたのDFの2つのスライスをフィルタリングするブールマスクを使用して、ちょうど引く:

In[13]: 
df.loc[df[6] == 'R',4] - df.loc[df[6] == 'F',4] 

Out[13]: 
0 
188  11.14 
750  47.47 
1330 60.03 
1385 12.70 
Name: 4, dtype: float64