2017-10-10 3 views
0

私は、PandasのDataFrameを変更して管理するために、Python 3でコンテキストマネージャを作成しました。DataFrame用のカスタムContextManager

私は削除、更新、挿入の3つの機能を持っています。

私の質問はこれです。どのようにして、データフレームの結果をwith文の外のユーザーに戻すことができますか?私は戻ってContextManagerから私の更新された値を取得するにはどうすればよい

`` `

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 

ですから、forループ直後 df = editor.dfような何かを行うことができます変更されたオブジェクトが完了します:

+0

エディタオブジェクトデータを使用したくない場合は、なぜ最初にそのオブジェクトを作成していますか?どのように静的な、またはモジュールの削除、更新と挿入のメソッドとdf自体のループ?コンテキストマネージャーの必要もありません。 – ali

答えて

0

あなたのコンテキストマネージャは、おそらく次のようになります。

コンテキストマネージャからどのようなメリットが得られているのかはっきりしません。

関連する問題