2017-08-08 120 views
0

一個數據幀我試圖創建和Python函數返回Python函數中

def create_df(): 
    data = {'state': ['Ohio','Ohio','Ohio','Nevada','Nevada'], 
      'year': [2000,2001,2002,2001,2002], 
      'pop': [1.5,1.7,3.6,2.4,2.9]} 
    df = pd.DataFrame(data) 
    return df 
create_df() 
df 

我得到的DF是沒有定義的錯誤返回的數據幀。如果我用'print'替換'return',我會正確地打印數據框。有沒有辦法做到這一點?謝謝

+0

'df'是一個局部變量。你需要像'df = create_df()'一樣分配結果。 –

回答

0

當你調用create_df() python調用該函數,但不保存結果的任何變量。這就是你得到錯誤的原因。

create_df()結果分配給df這樣df = create_df()

+0

aarrgh ...謝謝! –

0

我有點晚了這裏,而是在函數內部創建一個全局變量是什麼?它應該爲你保存一個步驟。

def create_df(): 

    global df 

    data = { 
    'state': ['Ohio','Ohio','Ohio','Nevada','Nevada'], 
    'year': [2000,2001,2002,2001,2002], 
    'pop': [1.5,1.7,3.6,2.4,2.9] 
    } 

    df = pd.DataFrame(data) 

然後,當您運行create_df()時,您將能夠使用df。

當然,如果你有一個大的程序,要小心你的命名策略,這樣df的值不會隨着各種函數的執行而改變。