从管理器获取字典作为全局变量

时间:2018-11-08 08:34:30

标签: python multithreading

我要在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())

1 个答案:

答案 0 :(得分:1)

说S1到S7是熊猫数据帧的列表,每个熊猫数据帧包含特定传感器的数据以及每个数据条目的相应时间戳。

import pandas as pd

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

df_S1 = pd.concat(S1)

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

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

现在,如果要将所有传感器合并到一个DataFrame中,请签出Pandas' tutorial以确定所需的功能(例如pd.merge或pd.merge_asof)。如果使用pd.merge,则可以遍历df_S1,...,df_S7,因为pd.merge仅支持合并两个DataFrame。