Нужна помощь в цикле if - PullRequest
       80

Нужна помощь в цикле if

0 голосов
/ 06 августа 2020

Я новичок в кодировании python, и у меня есть приведенный ниже простой список в моем коде.

Marks = [82,70,60,50,40,30]

Теперь мое требование - я хочу получить еще один столбец в моем выводе с именем Результат , как показано ниже

enter image description here

So how to use if and else to achieve the output which i'm looking like

if Marks > 80 print 'Distinction'
if Marks >60 and Marks <= 70 print 'Grade A'
if Marks >50 and Marks <= 60 print 'Grade B'
if Marks >40 and Marks <= 50 print 'Grade C'
else print 'Good for Nothing'

Ответы [ 3 ]

2 голосов
/ 06 августа 2020

это хорошая задача для np.where:

df['Result'] = 'Good for Nothing'
df['Result'] = np.where((df['Marks'] > 80), 'Distinction', df['Result'])
df['Result'] = np.where((df['Marks'] > 60) & (df['Marks'] <= 70), 'Grade A', df['Result'])
df['Result'] = np.where((df['Marks'] > 50) & (df['Marks'] <= 60), 'Grade B', df['Result'])
df['Result'] = np.where((df['Marks'] > 40) & (df['Marks'] <= 50), 'Grade C', df['Result'])
0 голосов
/ 06 августа 2020
Marks = [82,70,60,50,40,30]
df = pd.DataFrame({'Marks' : Marks})
print(df)

def a(b):
if b['Marks'] > 80:
    return 'Distinction'
elif b['Marks'] > 69:
    return 'Grade A'
elif b['Marks'] > 59:
    return 'Grade B'
elif b['Marks'] > 49:
    return 'Grade C'
else:
    return 'Good for Nothing'

df['Result'] = df.apply(a, axis=1)
print(df)
0 голосов
/ 06 августа 2020

Попробуйте что-нибудь подобное в Python3

Marks = [82,70,60,50,40,30]

for i in Marks: 
    if i > 80:
        print('Distinction')
    elif i >60 and i <= 70:
        print('Grade A')
    elif i >50 and i <= 60:
        print('Grade B')
    elif i >40 and i <= 50:
        print('Grade C')
    else:
        print('Good for Nothing')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...