在dataframe中添加行时出现Python错误:assignmen之前引用了局部变量“finallog”

2024-10-02 18:18:59 发布

您现在位置:Python中文网/ 问答频道 /正文

代码段

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)

错误消息为:

^{pr2}$

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


Tags: dfinputindex代码段错误timedeltaintseries
1条回答
网友
1楼 · 发布于 2024-10-02 18:18:59

我想,您在代码上方的某个地方声明了finallog,但在另一个作用域中,却在“当前”局部作用域(可能在下面的某个地方,因为我在您的代码中看不到任何赋值):

finallog = pd.concat([finallog, df_2],axis=0)
...
> UnboundLocalError: local variable 'finallog' referenced before assignment

按照docs的建议,尝试使用global。简化示例:

^{pr2}$

使用global

x = 10

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

p()
Out: 
10

相关问题 更多 >