我有这个熊猫数据框:
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.300
和7.500
之间。我不知道我要问的事情是否可能,但是非常感谢您抽出宝贵的时间阅读并尝试帮助我。
答案 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
。