为了账号安全,请及时绑定邮箱和手机立即绑定

在基于另一个DataFrame的DataFrame上应用插值

在基于另一个DataFrame的DataFrame上应用插值

qq_花开花谢_0 2021-05-13 18:19:38
我DataFrame想根据特定列的值以某种方式添加新列,该列的结果取决于another中 包含的数据DataFrame。更具体地说,我有df_original =     Crncy  Spread  Duration0   EUR    100     1.21   nan    nan     nan2          100     3.463   CHF    200     2.54   USD    50      5.0...df_interpolation =     CRNCY  TENOR   Adj_EUR   Adj_USD0   EUR    1       10        20    1   EUR    2       20        30  2   EUR    5       30        40  3   EUR    7       40        50  ...10  CHF    1       50        10  11  CHF    2       60        20  12  CHF    5       70        30  ...现在想添加的列Adj_EUR与Adj_USD到df_original每行的基础上的值Crncy,并Duration使用标准的线性内插。因此,对于每个可用,我们想使用TENOR和Adj_USD/和Adj_EURfromdf_interpolation和Durationfrom来形成插值。df_originalCrncy例如,使用optimize-package的伪代码scipy:from scipy import optimize""" Do this for both 'Adj_EUR' and 'Adj_USD' """# For 'Adj_EUR'for curr, df in df_original.groupby('Crncy'):    x_data = df_interpolation[df_interpolation['CRNCY']==curr].as_matrix(['TENOR'])    y_data = df_interpolation[df_interpolation['CRNCY']==curr].as_matrix(['Adj_EUR'])    """ Linear fit """    z_linear = optimize.curve_fit(lambda t,a,b: a + b * t, x_data.ravel(), y_data.ravel())[0]    """ Somehow add the values back to df_original in a new column """    df['Adj_EUR'] = z_linear[0] + z_linear[1] * df['Duration']屈服    Crncy  Spread  Duration  Adj_EUR  Adj_USD0   EUR    100     1.2       12       221   nan    nan     nan       0.0      0.0...关于如何执行此操作的任何线索?
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 273 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号