Python—在数据帧中添加行时出错:局部变量';最终';分配前参考

Python—在数据帧中添加行时出错:局部变量';最终';分配前参考,python,pandas,dataframe,data-science,Python,Pandas,Dataframe,Data Science,代码片段 s = int(input()) # finallog.append(pd.Series([CurrentClock,timedelta(seconds=s,minutes=m),CurrentProgramCode,0,0],index=finallog.columns()), ignore_index=True) # finallog.loc[j]=[CurrentClock,timedelta(seconds=s,minutes=m),CurrentP

代码片段

s = int(input())
       # finallog.append(pd.Series([CurrentClock,timedelta(seconds=s,minutes=m),CurrentProgramCode,0,0],index=finallog.columns()), ignore_index=True)
       # finallog.loc[j]=[CurrentClock,timedelta(seconds=s,minutes=m),CurrentProgramCode,0,0]
       # j+=1
df_2 = pd.DataFrame(data={
             'CurrentTime':[CurrentClock],
             'BookingNumber':[""],
             'Duration':[timedelta(seconds=s, minutes=m)],
             'BrandCode':[""], 
             'TapeCode':[CurrentProgramCode]})
finallog = pd.concat([finallog,df_2],axis=0)
print(finallog)
错误消息如下:

UnboundLocalError                         Traceback (most recent call last)
<ipython-input-45-6144a7142686> in <module>()

----> 1 startup()

<ipython-input-25-1490643b2ba7> in startup()

     17        # j+=1

     18 df_2=pd.DataFrame(data={'CurrentTime':[CurrentClock],'BookingNumber':[""],'Duration':[timedelta(seconds=s, minutes=m)],'BrandCode':[""],'TapeCode':[CurrentProgramCode]})

     19 **finallog=pd.concat([finallog,df_2],axis=0)**

     20 print(finallog)

     21 CurrentClock=CurrentClock+timedelta(seconds=s,minutes=m)

> UnboundLocalError: local variable 'finallog' referenced before assignment
UnboundLocalError回溯(最近一次调用)
在()
---->1启动()
在启动中()
17#j+=1
18 df_2=pd.DataFrame(数据={'CurrentTime':[CurrentClock],'BookingNumber':[“”],'Duration':[timedelta(秒=s,分钟=m)],'BrandCode':[“”],'TapeCode':[CurrentProgramCode]})
19**finallog=pd.concat([finallog,df_2],轴=0)**
20份印刷品(最终版)
21 CurrentClock=CurrentClock+timedelta(秒=s,分钟=m)
>UnboundLocalError:赋值前引用的局部变量“finallog”

请建议任何解决办法,使这项工作。另外,如果其中一个被注释掉的方法更适合添加,请建议,因为当我尝试时,所有方法似乎都给出了一些或其他错误以及所有运行时错误。谢谢。

我想,您在代码上方的某个位置声明了
finallog
,但在其他作用域中,但在“当前”本地作用域中分配给它(可能在下面的某个位置,因为我在您的代码中没有看到任何分配):

作为建议,尝试使用
global
。简化示例:

x = 10

def p():
    print(x)
    x += 1

p()
Traceback:
UnboundLocalError                         Traceback (most recent call last)
<ipython-input-3-d40139f363ae> in <module>
----> 1 p()

<ipython-input-2-271014bcda23> in p()
      1 def p():
----> 2     print(x)
      3     x += 1
      4

我想,您在代码上方的某个位置声明
finallog
,但在其他范围内,但在“当前”本地范围内分配给它(可能在下面的某个位置,因为我在您的代码中没有看到任何分配):

作为建议,尝试使用
global
。简化示例:

x = 10

def p():
    print(x)
    x += 1

p()
Traceback:
UnboundLocalError                         Traceback (most recent call last)
<ipython-input-3-d40139f363ae> in <module>
----> 1 p()

<ipython-input-2-271014bcda23> in p()
      1 def p():
----> 2     print(x)
      3     x += 1
      4
x = 10

def p():
    global x
    print(x)
    x += 10

p()
Out: 
10