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