在其他两个日期之间插入一个日期以获得一个值

Interpolate a date between two other dates to get a value

我有这个 pandas 数据框:

     ISIN             MATURITY       PRICE   
 0  AR121489 Corp     29/09/2019    5.300
 1  AR714081 Corp     29/12/2019    7.500
 2  AT452141 Corp     29/06/2020    2.950
 3  QJ100923 Corp     29/09/2020    6.662

我的问题是是否存在一种方法可以在 "MATURITY" 列中插入日期并获取该日期的价格值。例如,如果我 select 日期 18/11/2019,则该日期的价格值应介于 5.3007.500 之间。我不知道我问的问题是否可行,但非常感谢您花时间阅读它并试图帮助我。

如果您想要插入每日频率,您可以先创建一个包含开始日期和结束日期的每日频率范围。

new_df = pd.DataFrame()
new_df["MATURITY"] = pd.date_range(start='29/09/2019', end='29/09/2020')
new_df = pd.concat([new_df,old_df], join="outer", axis=1)
new_df["PRICE"] = new_df["PRICE"].interpolate(method = "linear")

我会将日期视为日期时间对象,并且为了插值将日期从日期时间对象转换为某个时间间隔值,即自 20XX-XX-XX 00:00:00 以来的秒数或天数,我会做同样的事情对于输出时刻。之后插值也适用于 NumPy 插值方法。

matplotlib.dates中有一个方法date2numnum2date值得一试。