Python:在两个回调之间共享结果

问题描述

假设我为模拟定义了两个回调。第一个 (preStep) 描述在模拟时间步之前如何处理数据,另一个 (postStep) 在模拟时间步之后做什么。 在回调“preStep”中,我创建了一个包含多个模型信息的 Pandas DataFrame,例如 x、y 坐标和一些观察点的高程,看起来像(以 NODE 作为我的索引列):

>>> df_pre_data

     X     Y     Elevation
NODE
0    5.0   0.0   1.0
1    6.5   1.5   3.0
2    8.0   3.0   5.0

我想与另一个回调“postStep”共享这个 DataFrame,在那里我想比较两者并评估由于模拟时间步长引起的高程变化。
我尝试了以下方法来实现我的比较(只是让您看到我实际上在用这些东西做什么)

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)

但是当输入上面的代码时,它会抛出一个“NameError: name 'df_pre_data' is not defined”。
我想要的输出看起来像:

>>> 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”的 DataFrame。看起来这些回调无法访问彼此的结果。
根据这篇文章How can I create chain of callbacks in python? 我尝试在回调中定义我的函数并将它们相互链接
这是行不通的,还有其他可能吗?或者我是否需要找到一种方法来实现这个链接的答案,因为这是唯一的方法

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)