【问题标题】:How to make a dataframe globally accessible from within a function without assigning it to a variable (in psychopy)?如何在不将其分配给变量的情况下从函数内全局访问数据框(在精神病中)?
【发布时间】:2020-02-05 22:24:29
【问题描述】:

我有一个函数可以执行多个命令并在最后创建一个数据框:

def Pos_Presentation():
    df = pd.DataFrame(columns=['ID', 'Date', 'Time', 'Session','Condition','Stimulus','Response_Type','Reaction_Time'])
    return df

我希望在函数外部创建和访问数据框 (df)。但是当我尝试时:

Pos_Presentation()
df

我收到一个错误:

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-4-00cf07b74dcd> in <module>
----> 1 df

NameError: name 'df' is not defined

我试过了:

def Pos_Presentation():
        global df
        df = pd.DataFrame(columns=['ID', 'Date', 'Time', 'Session','Condition','Stimulus','Response_Type','Reaction_Time'])
        return df

Pos_Presentation()
df

在 Jupyter_Notebook 中,这是可行的。但是在我需要运行它的 Psychopy 中,它给了我一个错误:

NameError: name 'df' is not defined

我无法将此函数分配给变量(例如 var = Pos_Presentation()),因为它除了生成数据帧之外还做了很多其他事情。

【问题讨论】:

  • 您可以并且应该分配返回值

标签: python-3.x psychopy


【解决方案1】:

我认为您只需要将 PosPresentation() 的输出分配给 df,如下所示:

def Pos_Presentation():
    global df
    df = pd.DataFrame(columns=['ID', 'Date', 'Time', 'Session','Condition','Stimulus','Response_Type','Reaction_Time'])
    return df

df = Pos_Presentation()

另外,我认为您的函数定义中不需要“全局 df”,如果您给它们起不同的名称(例如,在函数中调用“df " 但在函数 "Pos_df" 之外的那个)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-19
    • 1970-01-01
    • 2023-01-03
    • 2020-07-06
    • 2011-04-07
    相关资源
    最近更新 更多