这可能是一个答案很明显的问题,但我似乎无法弄清楚这里出了什么问题。
def conv_pd_df():
spreadsheet = client.open(spreadsheet_id).sheet1
data = spreadsheet.get_all_values()
index = str(data[0][0])
headers = data.pop(0)
df = pd.DataFrame(data, columns=headers, index=None)
df = df.set_index(index)
mask = df.applymap(lambda x: key in str(x))
df1 = df[mask.any(axis=1)]
return df1
def highlight(df1):
for x in df1:
print(x) # filler
if __name__ == '__main__':
conv_pd_df()
highlight(df1) # this is where the error is
尝试执行代码时,我的highlight(df1)
中不断收到"未解析的引用"。我尝试在一开始创建一个空白的熊猫 df = df1 来尝试解决这个问题,但它仍然给了我同样的错误。我以为我传递了正确的变量,那么这是怎么回事?即使我不放if __name__ == '__main__':
,也只是直接运行函数,也会发生这种情况。
它从if __name__ == '__main__':
下的代码开始,此时您没有定义变量df1
。conv_pd_df()
中的df1
仅存在于该函数的范围内
您应该将__main__
中的df1
设置为等于conv_pd_df()
的回报
df1 = conv_pd_df()
你的主要是:
if __name__ == '__main__':
conv_pd_df()
highlight(df1)
当然,conv_pd_df()
返回df1
数据帧,但您不绑定该返回值,因此没有名为df1
的变量。 以下内容将修复该引用问题:
if __name__ == '__main__':
df1 = conv_pd_df()
highlight(df1)