问题描述
假设我为模拟定义了两个回调。第一个 (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 (将#修改为@)