Python 逻辑不工作-将值与列表中的年龄匹配

Python 逻辑不工作-将值与列表中的年龄匹配,python,if-statement,conditional-operator,Python,If Statement,Conditional Operator,我正在尝试将特定值(val_A)与csv格式的列表(val_B)中的年龄相匹配 我正在使用下面的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

我正在尝试将特定值(
val_A
)与csv格式的列表(
val_B
)中的年龄相匹配

我正在使用下面的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)
def age_convert(val_A):
val_B=1
ages=pd.read\u csv('age.csv'))
#印刷品(年代)
如果val_A的年龄:
val_B=val_A
elif val_A>91:
val_B=91

elif val_A您是否尝试将值强制转换为整数

无论如何,这似乎不是检查值是否在数据帧中的最佳方法,因为DF中的元素是列名。而不是检查它是否在df.values中:

>>df
A、B、C、D
0  10  11  12  13
>>>df中的“A”
真的
>>>10英寸df
假的
>>>10英寸df值
真的

您是否尝试将值强制转换为整数

无论如何,这似乎不是检查值是否在数据帧中的最佳方法,因为DF中的元素是列名。而不是检查它是否在df.values中:

>>df
A、B、C、D
0  10  11  12  13
>>>df中的“A”
真的
>>>10英寸df
假的
>>>10英寸df值
真的

您确定read\u csv给您的是整数,而不是字符串吗?您能给我们看一下pd.read\u csv('age.csv')的结果吗
?@惊呆了似乎这实际上可能是issue@ted请参阅以下:独特年龄091.0190.0289.0388.0485.0584.0682.0781.0880.0978.01077.01176.01275.01374.01473.01572.0 16 71.0 17 70.0 18 69.0 19 68.0 20 67.0 21 66.0 22 65.0 23 64.0 24 63.0 25 62.0 26 61.0 27 60.0 28 59.0 29 58.0 .. ...你确定read\u csv给你的是整数,而不是字符串吗?你能给我们看一下pd.read\u csv('age.csv')的结果吗?@惊呆了似乎这实际上可能是issue@ted请参阅以下:独特年龄091.0190.0289.0388.0485.0584.0682.0781.0880.0978.01077.01176.01275.01374.01473.01572.0 16 71.0 17 70.0 18 69.0 19 68.0 20 67.0 21 66.0 22 65.0 23 64.0 24 63.0 25 62.0 26 61.0 27 60.0 28 59.0 29 58.0 .. ...