0

我在訪問函數內的數據框值時遇到了問題。從函數內部訪問數據框值Python熊貓

我的代碼開頭如下:

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,但我不清楚它的用途,我用Google搜索瞭解我的問題的答案,但沒有看到任何真正的答案。

在此先感謝。

回答

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