我正在使用numpy interp插入数据点,但给定的数据点不能从dtype('
代码段:
import pandas as pd
import numpy as np
def interpolate_fwd_price(row, fx):
res = np.interp(row['SA_M'], fx['TENOR_DT'], fx['RATE'])
return res
df = pd.DataFrame({'SA_M': ['2018-02-28','2018-03-10']})
df['SA_M'] = pd.to_datetime(df['SA_M'])
data = pd.DataFrame({'TENOR_DT': ['2017-02-09','2017-03-02','2017-04-03','2017-05-02'], 'RATE':[1.0, 1.2, 1.5, 1.8]})
data['TENOR_DT'] = pd.to_datetime(data['TENOR_DT'])
df['PRICE'] = df.apply(interpolate_fwd_price, fx=data, axis=1)
我做了一些搜索,但不知道是什么导致了这个错误。感谢你的意见。
进行一些更改,它可以用于插入日期时间差,而不是直接插入日期时间。仍然有兴趣知道为什么它不能直接插入日期时间。
def interpolate_fwd_price(row, fx):
fx['DT'] = (fx['TENOR_DT'] - row(['SA_M'])).dt.days
res = np.interp(0, fx['DT'], fx['RATE'])
return res
日期的数组版本:
可以使用默认的
unsafe
将其转换为浮点:我的猜测是
np.interp
正在使用safe
强制转换将这些日期时间值转换为浮点数。我以前没有试过用日期,所以只能建议一些修复方法。首先,您的日期只因天而异,因此我们不需要完整的
ns
解决方案:它仍然不允许安全浇铸,但“不安全”浇铸会产生看起来合理的数量。你可以在插值中使用这些。
相关问题 更多 >
编程相关推荐