在python中我有一个类似于下面的pandas数据框:
| AUG12 | UNDERLYING | VOL |
|---------------------| | |
| 45 | 49 | 50 | 55 | | |
====================================================|
2012-11-14 | 1 | 1 | 2 | 3 | 49 | ? |
... ... ... ... ...
任务是:对于每一行,找到大于UNDERLYING
(49)的列名,将值(2 + 3)相加并将结果放入VOL
(5)。我怎么能在python中完成这个?非常感谢提前!
答案 0 :(得分: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)