我正在创建一个程序,使用最近年龄的插值创建未在给定目录中指定的年龄的星系光谱。
我正在尝试找到一个解决方案,以确保我没有通过在下面的runinterpolation
函数中添加另一个if语句进行推断。
限制是[[age1,age2],[age3,age4],...]
形式的年龄列表
数据是一个数据帧列表,其中相应的数据将针对每个k的限制进行插值。
对于原始数据中高于/低于给定年龄的年龄,前一个函数返回限制的最低/最高年龄,即[[age1,age1]]
我似乎无法编写if语句,如果age1 = age2,则创建一个包含age1非插值数据的列。
插值函数如下:
# linear interpolation
def interpolation(limits,data,age):
interp = sc.interp1d(limits,data)
interped = interp(age)
return interped
#runs the interpolation for each age, values returned as columns
#of new dataframe
def runinterpolation(limits,data,ages):
int_data = pd.DataFrame(index=Lambda)
for x,y,z in zip(limits,data,ages):
W = interpolation(x,y,z)
int_data[z] = W
return int_data
非常感谢任何帮助。