我在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 循环完成后
不确定您从上下文管理器中获得了什么好处。