首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Excel导入Python矩阵的问题及if elif状态的一些问题

从Excel导入Python矩阵的问题及if elif状态的一些问题
EN

Stack Overflow用户
提问于 2021-09-22 13:37:11
回答 1查看 35关注 0票数 0

我正在尝试运行这段代码并解决一些问题。我首先尝试插入"BOD“作为输出的名称,将"6”作为输入参数的数量。

代码语言:javascript
复制
    import os
    import numpy as np
    import pandas as pd
    from pandas import ExcelWriter
    from numpy import *
    
    OutputName = input('please enter the name of the output (BOD,COD,TSS)');
    InputNum = input('please enter the number of input parameters (6 or 12) = ');
    file_name = 'biowin_withMalfunction.xlsx'
    
    if OutputName == 'BOD':
               Output_num=1
               if InputNum == 6:
                  Data = pd.read_excel(open(r'C:\Users\Elisa\test_conv_Fatone\biowin_withMalfunction.xlsx', 'rb'), sheet_name='ANN full data for BOD_6Params')
                  print (Data)
               elif InputNum ==12:
                Data = pd.read_excel(open(r'C:\Users\Elisa\test_conv_Fatone\biowin_withMalfunction.xlsx', 'rb'), sheet_name='ANN full data for BOD')
    elif OutputName == 'COD':
               Output_num=2
               if InputNum == 6:
                Data = pd.read_excel(open(r'C:\Users\Elisa\test_conv_Fatone\biowin_withMalfunction.xlsx', 'rb'), sheet_name='ANN full data for COD_6ParamsD')
               elif InputNum ==12:
                Data = pd.read_excel(open(r'C:\Users\Elisa\test_conv_Fatone\biowin_withMalfunction.xlsx', 'rb'), sheet_name='ANN full data for COD')
    else:
               Output_num=3
               if InputNum == 6:
                Data = pd.read_excel(open(r'C:\Users\Elisa\test_conv_Fatone\biowin_withMalfunction.xlsx', 'rb'), sheet_name='ANN full data for TSS_6Params')
               elif InputNum ==12:
                Data = pd.read_excel(file_name, sheet_name="ANN full data for TSS")
    
    index = Output_num -3;
    X = Data[0:end-2,0:end]

错误是:

代码语言:javascript
复制
    Traceback (most recent call last):
      File "C:\Users\Elisa\test_conv\ANN_Converted.py", line 42, in <module>
        X = Data[0:end-2,0:end]
    NameError: name 'Data' is not defined

似乎变量数据不是用pd.reading创建的,实际上,如果我尝试print( Data ),它就不存在了。有人能帮我找出这个问题吗?我可以共享输入excel文件吗?多么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-22 13:45:11

想想你的条件。如果每个单独的测试都是False,会发生什么?如果所有的测试都是False,会发生什么?

您的决策树中有一个路径,其中没有打开任何文件。这是当前获取的,因此Data不存在,正如您所确定的那样。

在这种情况下,问题很可能是input()返回一个字符串,而您正在测试一个整数。

因此,要么对字符串进行测试:

代码语言:javascript
复制
if inputNum == "5"

或将inputNum转换为int:

代码语言:javascript
复制
inputNum = int(inputNum)

在你做任何测试之前。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69285376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档