[英]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.