在其他两个日期之间插入一个日期以获得一个值
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.300
和 7.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
中有一个方法date2num
也num2date
值得一试。
我有这个 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.300
和 7.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
中有一个方法date2num
也num2date
值得一试。