Логика не работает - сопоставление значений с возрастами в списке - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь сопоставить определенные значения (val_A) с возрастами в списке (val_B) в формате csv.

Я использую приведенный ниже код Python, но он никогда не отвечает первым двум критериям.

Последние два оператора elif и else работают, и почти всегда elseкритерии применяются.

def age_convert(val_A):
    val_B = 1
    ages = pd.read_csv('age.csv')
    #print(ages)

    if val_A in ages:
        val_B = val_A
    elif val_A>91:
        val_B=91
    elif val_A<0:
        val_B=val_A*-1
    elif val_A==86:
        val_B=val_A+2
    else:
        val_B=val_A+1
        print('I went through the else')

    return val_B

test = age_convert(1)

print(test)

1 Ответ

0 голосов
/ 15 февраля 2019

Вы пытались явным образом привести значения к Integer?

В любом случае, кажется, что это не лучший способ проверить, находится ли значение в DataFrame, как элементы, которые находятся "в"DF - это имена столбцов.Вместо этого проверьте, находится ли он в df.values:

>>> df
    A   B   C   D
0  10  11  12  13
>>> 'A' in df
True
>>> 10 in df
False
>>> 10 in df.values
True
...