Python:在两个回调之间共享结果
假设我为一个模拟定义了两个回调。第一个(preStep)描述了在模拟时间步之前如何处理数据,另一个(POSTEP)描述了在模拟时间步之后如何处理数据。 在回调“preStep”时,我创建了一个包含多个模型信息的熊猫数据框,如x、y坐标和一些观测点的高程,如下所示(以节点作为索引列): 我想与另一个回调“postStep”共享此数据帧,在这里我想比较两者并评估由于模拟时间步长引起的高程变化。Python:在两个回调之间共享结果,python,callback,chained,Python,Callback,Chained,假设我为一个模拟定义了两个回调。第一个(preStep)描述了在模拟时间步之前如何处理数据,另一个(POSTEP)描述了在模拟时间步之后如何处理数据。 在回调“preStep”时,我创建了一个包含多个模型信息的熊猫数据框,如x、y坐标和一些观测点的高程,如下所示(以节点作为索引列): 我想与另一个回调“postStep”共享此数据帧,在这里我想比较两者并评估由于模拟时间步长引起的高程变化。 我尝试了以下方法来实现我的比较主义(只是你看到了我在用这些东西做什么) 但是当输入上述代码时,它抛出一个“
我尝试了以下方法来实现我的比较主义(只是你看到了我在用这些东西做什么) 但是当输入上述代码时,它抛出一个“NameError:名称'df_pre_data'未定义”。
我想要的输出如下所示:
>>> df_post_data
X Y Elevation last_value check FLAG
NODE
0 5.0 0.0 1.8 1.0 0.8 False
1 6.5 1.5 5.5 3.0 2.5 True
2 8.0 3.0 4.1 5.0 0.9 False
我希望你看到我想去的地方
我现在的问题是,我无法访问回调“postStep”时的“preStep”数据帧。看起来这些回调无法访问彼此的结果。根据这篇文章:我尝试在回调中定义我的函数,并将它们相互链接。
这不起作用,还有其他的可能性吗?还是我需要找到一种方法来实现这个链接答案,因为这是唯一的方法
df_post_data['last_value'] = df_pre_data['Elevation']
df_post_data['check'] = df_post_data.apply(lambda row: row['Elevation'] - row['last_value'], axis=1)
df_post_data['FLAG'] = np.where((df_post_data['check'].abs() >= 1), True, False)
>>> df_post_data
X Y Elevation last_value check FLAG
NODE
0 5.0 0.0 1.8 1.0 0.8 False
1 6.5 1.5 5.5 3.0 2.5 True
2 8.0 3.0 4.1 5.0 0.9 False