0

関数内からデータフレーム値にアクセスする際に問題があります。要するに関数内部からのデータフレーム値へのアクセスPython Pandas

def error_check(ID, error_source): 

    if error_source == "A": 

     marker = df1.loc[ID,'SOMETHING'] 

    elif error_source == "B": 

     marker = df2.loc[ID,'SOMETHING'] 

    elif error_source == "C": 

     marker = df3.loc[ID,'SOMETHING'] 

    else: 

     pass 

    .... 

    return 

を、私は特定のデータフレームで見つかった値に等しいの値を設定したいerror_sourceの値に応じて次のように

私のコードの始まりです。各データフレームには、関数に渡されるIDと等しいインデックスラベルがあります。

私の質問:各データフレームを関数に渡して参照する必要がありますか?そして、それらはローカルオブジェクトとして扱われますか?または、関数内でアクセスできるようにデータフレームをグローバルに宣言する必要がありますか? 3では、スクリプトだけでなく、関数内でどこでもデータフレームにアクセスできるようにする簡単な方法はありますか?

私はnamespaceへの参照を見ましたが、私はその使用についてはっきりしていないと私は私の質問への答えを見つけるためにグーグルを見つけましたが、本当にそれに答えて何も見ていない。

ありがとうございます。

答えて

1

この場合、DF辞書を使用します。

デモ:

dfs = {'A':df1, 'B':df2, 'C':df3} 

def error_check(ID, error_source, dfs): 
    if error_source in 'ABC': 
     marker = dfs[error_source].loc[ID,'SOMETHING'] 
    else: 
     pass 
     ... 
+0

クールなアイデア!しかし、アクセスの問題についてはまだ疑問に思っています。 – Windstorm1981

関連する問題