首页 > 解决方案 > 从经理那里获取字典作为全局变量

问题描述

我在 main 之前尝试以下代码

manager = Manager()
general_d = manager.dict()

然后在主要我定义以下

  p = Pool(4)  # however many process you want to spawn
  p.map(proc_file, directoary_names)

def proc_file(directoary_names):
    try:
        process_data(directoary_names)
    except KeyboardInterrupt:
      pass

问题是我得到冻结的异常不会被冻结以生成可执行文件。''')

主要问题是我正在处理许多文件并且我从每个文件中获取结果,所以问题是如何从传感器(s1 到 s8)中获取结果以及每个传感器的时间戳并按顺序合并它们时间戳...

伪代码会很有帮助。

在处理数据中,我处理文件,读取它的数据,然后将结果放入全局列表中

             S1.append(df_conv['C_strain_COY'].median())
             S2.append(df_conv['C_strain_CUY'].median())
             S3.append(df_conv['C_strain_ROX'].median())
             S4.append(df_conv['C_strain_CUX'].median())
             S5.append(df_conv['C_strain_CMX'].median())
             S6.append(df_conv['C_strain_COX'].median())
             S7.append(df_conv['C_strain_LOX'].median())

             T1.append(df_conv['C_temp_CUY'].median())
             T2.append(df_conv['C_temp_COY'].median())
             T3.append(df_conv['C_temp_CUX'].median())
             T4.append(df_conv['C_temp_CMX'].median())
             T5.append(df_conv['C_temp_COX'].median())

标签: pythonmultithreading

解决方案


假设 S1 到 S7 是 Pandas DataFrames 的列表,每个包含特定传感器的数据和每个数据条目的相应时间戳。

import pandas as pd

为每个传感器创建一个联合 DataFrame

df_S1 = pd.concat(S1)

沿时间戳轴对这些 DataFrame 进行排序

df_S1 = df_S1.sort_values(by='timestamps')

现在,如果您想将所有传感器合并到一个 DataFrame 中,请查看Pandas 的教程以确定您需要哪个功能(例如 pd.merge 或 pd.merge_asof)。如果你使用 pd.merge,你可以循环 df_S1,...,df_S7,因为 pd.merge 只支持合并两个 DataFrame。


推荐阅读