编写一个基于多个条件在python中计算的函数

时间:2018-06-23 11:16:39

标签: python python-3.x pandas diff calculated-columns

我有一个包含两列和一个这样的索引的数据框

            Term   Yield      diff
Index                             
1 day   0.083333  0.0169       NaN
1MO     0.250000  0.0174  0.003000
3MO     0.500000  0.0192  0.007200
6MO     1.000000  0.0204  0.002400
1Y      2.000000  0.0228  0.002400
2Y      3.000000  0.0241  0.001300
3Y      5.000000  0.0261  0.001000
5Y      7.000000  0.0274  0.000650
7Y     10.000000  0.0282  0.000267
10Y    20.000000  0.0294  0.000120
13Y    30.000000  0.0306  0.000120

差异是通过

计算的
step_x['diff'] = (StepX_Value['Yield'] - StepX_Value['Yield'].shift(1))/(StepX_Value['Term'] - StepX_Value['Term'].shift(1))

我必须编写一个函数,该函数具有基于变量frequencyOAS和另一个数据框列df['Time']的复杂公式

如果频率为2( 2表示6个月/ 1表示1年/ 12表示1个月/ 4表示每季度),则我必须选择1day and 1MO行,{{1 }}一次,1Y and 2Y两次(因为一年中有两个6个月),2Y and 3Y两次(因为其中包含四个6个月)

如果频率为1,那么我必须选择3Y and 5Y1day and 1MO行的值一次,1Y and 2Y一次和2Y and 3Y两次的值(因为总计年有两年)

并像这样处理值,这是frq = 2的示例

3Y and 5Y

如果frq = 12,我应该使用1MO 1次,3个月3次,6个月6次,依此类推。

计算应完成,直到达到df ['time']

的长度为止。

我如何将此编写为函数?有人能帮我吗。我觉得这很复杂。

0 个答案:

没有答案