数据帧的自定义上下文管理器



我在Python 3中创建了一个上下文管理器来修改和管理Pandas的数据帧。

我有三个功能,删除,更新和插入。

所以我的问题是,如何将数据帧的结果传回 with 语句之外的用户?

'

''

df = pd.DataFrame()
with Editor(df) as editor:
    for idx, row in editor:
        row['COLUMN'] = "RANDOM VALUE"
        editor.update(idx, row)
df['COLUMN'] # still has original values    
'

''

如何从上下文管理器中获取更新的值?

您的上下文管理器可能如下所示:

class Editor():
    def __init__(self, df):
        self.df = df
    def __enter__(self):
        return self.df
    def __exit__(self, *args):
        pass
    def update(self):
        pass

因此,获取修改后的对象,您可以执行以下操作 df = editor.df for 循环完成后

立即进行。

不确定您从上下文管理器中获得了什么好处。

相关内容

最新更新