用熊猫插入立方体样条线



我有一个带有ResidMat和Price的数据帧,我使用scipy来查找插值CubicSpline。我使用CubicSpline和apply来查找数据集中的所有数据。但它不是很快,因为在这种情况下没有更多的数据。我会有一百多个数据,而且速度很慢。你有这样的想法吗,但也许用矩阵?

谢谢你,

def add_interpolated_price(row, generic_residmat):
from scipy.interpolate import CubicSpline
residmats = row[['ResidMat']].values
prices = row[['Price']].values
cs = CubicSpline(residmats, prices)
return float(cs(generic_residmat))
df = pd.DataFrame([[1,18,38,58,83,103,128,148,32.4,32.5,33.8,33.5,32.8,32.4,32.7],[2,17,37,57,82,102,127,147,31.2,31.5,32.7,33.2,32.5,32.9,33.3]],columns = ['index','ResidMat','ResidMat','ResidMat','ResidMat','ResidMat','ResidMat','ResidMat','Price','Price','Price','Price','Price','Price','Price'],index=['2010-06-25','2010-06-28'])
my_resimmat = 30
df['Generic_Value'] =  df.apply(lambda row: add_interpolated_price(row, generic_residmat=my_resimmat), axis=1)

看了这段代码的概要后,大部分时间都花在了插值上,所以我建议最好的方法是使用pandarallel。让Pandas DataFrame应用程序((使用所有核心?有详细信息。我最喜欢这种方法。。。(下面的大纲代码(

from pandarallel import pandarallel
from math import sin
pandarallel.initialize()
def func(x):
return sin(x**2)
df.parallel_apply(func, axis=1)

但这只适用于Linux和Macos,在Windows上,Pandarallel只有在从Windows Linux子系统(WSL(执行Python会话时才能工作。

相关内容

  • 没有找到相关文章

最新更新