2016-05-07 12 views
0

の条件付き加算Iは、以下のようなパンダのデータフレームを有する:パイソン/パンダ:Pythonで列

  | AUG12    | UNDERLYING | VOL | 
      |---------------------|   |  | 
      | 45 | 49 | 50 | 55 |   |  | 
====================================================| 
2012-11-14 | 1 | 1 | 2 | 3 | 49   | ? | 
...   ... ... ... ... 

タスクである:各行について、UNDERLYINGより大きい列名を見つける(49 )、値を合計し(2 + 3)、結果をVOL(5)に入れます。どのように私はこれをPythonで達成できますか?事前に多くの感謝!

答えて

1

あなたは私が探していたまさにですDataFrame.apply機能

def conditional_sum(row): 
    underlying = row['UNDERLYING'][0] # extra '[0]' is required due to multi leve index in column names 
    return row.loc['AUG12'].apply(lambda x: 0 if x < underlying else x).sum() 

df.apply(conditional_sum, axis=1) 
+0

を使用することができます。私は 'AUG12'を私の列の範囲に置き換えなければなりませんでした。しかしあなたのスニペットはトリックでした! – sascha