繁体   English   中英

如何在if语句中设置变量?

[英]How to set a variable in if-statement?

我的代码有问题。 我运行它并在命令 window 中向我显示:

NameError: name 'IA' is not defined (IA 是我在上面的代码解决方案中向您展示的等式)

我的代码:

import math
import pandas as pd
import matplotlib as mpl
import numpy as np

dfArxika = pd.read_csv('AIALL.csv', usecols=[0,1,2,3,4,5,6,7,8,9,10], header=None, index_col=False)
print(dfArxika.columns)

A=dfArxika[9]

for i in range(len(A)):
    if (A[i] >= 4.8 and A[i] < 66):
        IA[i]= (2.2*(math.log10(A[i]/66))+5.5)
    elif (A[i] >= 66):
        IA[i]= 3.66*(math.log10(A[i]/66)+5.5)
    else:
        IA[i]=(2.2*(math.log10(A[i]/66))+5.5)

我该如何解决? 我的意思是如何为列的每个值找到 IA 变量的值?

综上所述,我想找到一个新的变量(IA),它基于 A 变量值

我认为你在这里打错了字:

A=dfArxika[9]

那应该是

IA=dfArxika[9]

你有一个错字A应该是IA ,而且这个变量似乎没有被声明:

import math
import pandas as pd
import matplotlib as mpl
import numpy as np

dfArxika = pd.read_csv('AIALL.csv', usecols=[0,1,2,3,4,5,6,7,8,9,10], header=None, index_col=False)
print(dfArxika.columns)

IA=dfArxika[9]

for i in range(len(A)):
    if (A[i] >= 4.8 and A[i] < 66):
        IA[i]= (2.2*(math.log10(A[i]/66))+5.5)
    elif (A[i] >= 66):
        IA[i]= 3.66*(math.log10(A[i]/66)+5.5)
    else:
        IA[i]=(2.2*(math.log10(A[i]/66))+5.5)

可能是你的变量在 10 日A=dfArxika[9]上的错字尝试将它更改为IA=dfArxika[9]或将你的代码更改为

for i in range(len(A)):
    if (A[i] >= 4.8 and A[i] < 66):
        A[i]= (2.2*(math.log10(A[i]/66))+5.5)
    elif (A[i] >= 66):
        A[i]= 3.66*(math.log10(A[i]/66)+5.5)
    else:
        A[i]=(2.2*(math.log10(A[i]/66))+5.5)
```.

您需要在循环之前定义 IA。

基本上,您试图将数字放入一个不存在的列表中。

您可以做的是复制 A 并将其命名为 IA:

import math
import pandas as pd
import matplotlib as mpl
import numpy as np

dfArxika = pd.read_csv('AIALL.csv', usecols=[0,1,2,3,4,5,6,7,8,9,10], header=None, index_col=False)
print(dfArxika.columns)

A=dfArxika[9]
IA=np.copy(A)

for i in range(len(A)):
    if (A[i] >= 4.8 and A[i] < 66):
        IA[i]= (2.2*(math.log10(A[i]/66))+5.5)
    elif (A[i] >= 66):
        IA[i]= 3.66*(math.log10(A[i]/66)+5.5)
    else:
        IA[i]=(2.2*(math.log10(A[i]/66))+5.5)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM