在类之间共享熊猫数据框

时间:2019-09-12 10:05:27

标签: python pandas

我有一个创建许多熊猫数据框的项目。这些方法将根据用户输入进行各种操作,然后使用Class函数进行显示。有时可能需要从Class中更改数据框的某些部分。所以从本质上讲,我需要将数据帧传递给Class。

现在,我正在完成此操作(其中TableDisp是类):

ui = TableDisp()
self.ui.my_df = self.my_df

我意识到我可以通过类似...的方式来进行类初始化。

ui = TableDisp(self.my_df)

...如果我以此方式设置类,但该类的不同实例需要不同的df(需要清楚地标识)。即我需要做类似...

class TableDisp(Frame):
    def __init__(self, my_df=None, another_df=None, more_df=None, still_more_df=None):

但是有十几个这样的东西。

我当前的方法是抛出...

  

SettingWithCopyWarning:

...每当我从Class更改df时,我都可以忽略,但是这让我想知道我是否以最pythonic的方式执行此操作。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

对于简单的修复,我将使用DataFrame.copy()处理@Chris的注释。但是,在我看来,由于该类一次只需要保存一个数据帧,您可以像这样简化您的类定义:

class TableDisp(Frame):
    def __init__(self, df=None, df_type=None):
        if df_type == "type1":
            # Format df in a specific way
        elif df_type == "type2":
            # You get the idea
        else:
            raise ValueError("Unrecognised df_type")
相关问题