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