为什么会出现“ NameError:未定义名称'df'”的信息?

时间:2019-09-25 09:30:29

标签: python pandas dataframe numba

我不知道为什么未定义“ df”,因为我已经为df分配了一个值。我在网上阅读了有关此问题的一些问答,但似乎没有一个能帮助我解决问题。如果我删除了使用CUDA的代码,它可以完美运行,但是我正在处理的项目要求我使用CUDA。

@nb.jit(nopython=True)
def func_nb():
    data = pd.read_csv('dummycsv.csv')
    df = DataFrame(data)
    df['Tag'] = df['Tag'].map(lambda x: re.sub(r'\W+', '_', x))
tempdata = pd.DataFrame(columns=['Time','Value'])

taglist = pd.read_excel('dummyexcel.xlsx')
dt = DataFrame(taglist, columns=['Tag'])
dt['Tag'] = dt['Tag'].map(lambda x: re.sub(r'\W+', '_', x))


for i,row in dt.iterrows(): 

   tempdata = tempdata[0:0]      
   for index,row in df.iterrows():

       tag = dt.iloc[i]['Tag'] 
       x = df.iloc[index]['Tag']
       val = df.iloc[index]

预期结果是通过读取excel和csv文件并过滤其中的数据而创建的新文件。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:2)

def func_nb():
   data = pd.read_csv('dummycsv.csv')
   df = DataFrame(data)
   df['Tag'] = df['Tag'].map(lambda x: re.sub(r'\W+', '_', x))
   return df

df = func_nb()

此后,您可以使用数据框,因为它现在存在于函数之外。

答案 1 :(得分:1)

您将不得不让func_nb()返回df并确保调用函数func_nb()