【问题标题】:Interpolate from Existing Time-series Data - Python从现有的时间序列数据中插值 - Python
【发布时间】:2018-03-01 03:08:32
【问题描述】:

我在 pandas 数据框上有一个时间序列的日期和利率。以下是列表:

        dates     rates
0    3/1/2018  0.014553
1    3/8/2018  0.014951
2    4/2/2018  0.016987
3    5/1/2018  0.018719
4    6/1/2018  0.020044
5    9/4/2018  0.021602
6   12/3/2018  0.022361
7    3/1/2019  0.023080
8    6/3/2019  0.023726
9    9/3/2019  0.024333
10  12/2/2019  0.024811
11   3/2/2020  0.025234
12   3/1/2021  0.026456
13   3/1/2022  0.027126
14   3/1/2023  0.027541
15   3/1/2024  0.027898
16   3/3/2025  0.028206
17   3/2/2026  0.028486
18   3/1/2027  0.028748
19   3/1/2028  0.028998
20   3/1/2030  0.029444
21   3/1/2033  0.029850
22   3/1/2038  0.030126
23   3/2/2043  0.030019
24   3/2/2048  0.029778

我想为任何日期(例如 - 2021 年 3 月 21 日)插入一个低于最小和最大日期的费率。

我想使用 pandas 的插值方法来实现这一点。我该怎么做?

【问题讨论】:

    标签: python pandas interpolation finance quantitative-finance


    【解决方案1】:

    我会推荐numpy.interp,这里我将日期类型转换为数字

    np.interp(pd.to_numeric(pd.Series(pd.to_datetime('03/21/2021'))).values,pd.to_numeric(df['dates']).values,df['rates'].values)
    Out[425]: array([0.02649271])
    

    【讨论】:

    • 感谢您的回答!有效。我正在从 csv 文件导入数据并将其添加到数据框中。该文件具有与上述相同格式的数据,但字符串除外。是否可以完全不涉及数据帧并直接对其进行插值?
    • @azamat_bagatov10 你需要重新采样它,如果我是你,我将与 numpy.interp 叠加
    猜你喜欢
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 1970-01-01
    相关资源
    最近更新 更多