逻辑不工作 - 列表中的匹配值与年龄
Logic not working - matching values with ages in a list
我正在尝试将特定值 (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)
您是否尝试过将值显式转换为 Integer
?
无论如何,这似乎不是检查一个值是否在 DataFrame 中的最佳方法,因为 "in" 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
我正在尝试将特定值 (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)
您是否尝试过将值显式转换为 Integer
?
无论如何,这似乎不是检查一个值是否在 DataFrame 中的最佳方法,因为 "in" 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