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

时间:2018-10-22 08:55:30

标签: python python-3.x pandas scipy interpolation

我有这个熊猫数据框:

     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”列中插入日期并获得该日期的价格值。例如,如果我选择日期18/11/2019,则该日期的价格值应介于5.3007.500之间。我不知道我要问的事情是否可能,但是非常感谢您抽出宝贵的时间阅读并尝试帮助我。

2 个答案:

答案 0 :(得分:2)

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

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")

答案 1 :(得分:1)

我会将日期视为日期时间对象,并进行插值,将日期时间对象中的日期转换为某个时间间隔值,即自20XX-XX-XX 00:00:00以来的秒数或天数,而对于输出时间。之后,插值也可以使用NumPy插值方法。

matplotlib.dates中,有一种方法date2num也是值得尝试的num2date