我有校准因子需要在特定日期之后和某些仪器读数范围内应用,即。更高的读数将需要不同的校准因子。我的方式我正在尝试应用基于时间的查找表以及通过使用嵌套的python字典读取的原始乐器。
以下是我正在使用的数据框的示例:
dates = pd.date_range('2013-05-06', '2013-07-20', freq='D')
data = random.random(size=(76,2)) * 10
df = DataFrame(data, index=dates, columns=['instrument 1','instrument 2'])
以下是嵌套字典的示例,其中包含特定日期之后的仪器校准因子,并基于仪器读数。
caldates = pd.DatetimeIndex(['2013-05-06','2013-07-09'])
calibration = {caldates[0]:{'instrument 1':{'multiply':{1:0.05, 3:0.04, 7:0.03}, 'offset':{1:5, 3:7, 7:10}},
'instrument 2':{'multiply':{1:0.06, 3:0.04, 7:0.005}, 'offset':{1:8, 3:10, 7:15}},
caldates[1]:{'instrument 1':{'multiply':{1:0.05, 3:0.04, 7:0.03}, 'offset':{1:5, 3:7, 7:10}},
'instrument 2':{'multiply':{1:0.06, 3:0.04, 7:0.005}, 'offset':{1:8, 3:10, 7:15}},
正如我之前所说,在特定日期完成的校准因子应该在日期之后应用,并且使用的乘数和偏移量应该从最接近仪器读数的键中找到。
有没有办法迭代我的数据框,将这些校准因子应用于嵌套字典作为查找表的一种形式?