2017-08-08 77 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的值不会随着各种函数的执行而改变。