跨多个实例共享数据框

时间:2018-06-19 18:01:28

标签: python python-3.x pandas dataframe python-multithreading

在下面的代码片段中,我想在'Producer'类的所有实例之间共享DataFrame(g_df),但是只有在创建'Producer'的第一个实例时(在'producer中),才知道数据帧的结构。 process_event”)。目前,g_df仅可用于单个实例。

在仅在创建时才知道DataFrame架构的情况下,如何使全局DataFrame变量可供“生产者”或其他调用模块的所有实例使用?

import pandas as pd

class producer:
#g_df = None
#g_number_of_columns = None

def __init__(self):
    pass

def process_event(self):
    g_dynamic_column_list = ['A', 'B', 'C']
    g_number_of_columns = 3
    self.g_df = pd.DataFrame(columns=g_dynamic_column_list)
    new_record = list()
    for i in range(0, g_number_of_columns):
        new_record.append(i)
    pos = self.g_df.shape[0]
    self.g_df.loc[pos] = new_record

def disp(self):
    print(self.g_df)

prod1 = producer()
prod2 = producer()
prod1.process_event()
prod1.disp()
#Below call throws exception since g_df is not part of prod2 instance
#prod2.disp() 

0 个答案:

没有答案