簡體   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