ValueError:无法将字符串转换为float:'ane'

时间:2020-07-05 04:40:45

标签: python-3.x pandas tensorflow dictionary keras

print(xtest.head())
print("predicted as",myModel.predict(xtest))

输出:-

    age    bp    sg   al   su  rbc   pc  ...  rbcc  htn   dm  cad  appet   pe  ane
235  45.0  70.0  1.01  2.0  0.0  1.0  1.0  ...   4.8  0.0  0.0  1.0    1.0  0.0  1.0

[1 rows x 24 columns]
predicted as  [[0.99633694]]

xtest数据框有一个名为ane的列,该模型预测良好。但是当我以字典的形式给出相同的输入时

di={'age': 59, 'bp': 70, 'sg': 1.01, 'al': 1.0, 'su': 3.0, 'rbc': 0.0, 'pc': 0.0, 'pcc': 0.0, 'ba': 0.0, 'bgr': 424.0, 'bu': 55.0, 'sc': 1.7, 'sod': 138.0, 'pot': 4.5, 'hemo': 12.0, 'pcv': 37.0, 'wbcc': 10200.0, 'rbcc': 4.1, 'htn': 1.0, 'dm': 1.0, 'cad': 1.0, 'appet': 1.0, 'pe': 0.0, 'ane': 1.0 }
b=pd.DataFrame(di.items())
b=b.T
x['ane'] = x['ane'].astype(float)
tensor = tf.convert_to_tensor(b, dtype=tf.float64)
print(myModel.predict((tensor)))

它显示以下错误:-

ValueError: could not convert string to float: 'ane'

在训练模型中,我进行了相同的转换,并且效果很好。

我的colab笔记本:-

https://colab.research.google.com/drive/1DomDo3adwRBQUFD0g8JVpF5jxC9HoegW

1 个答案:

答案 0 :(得分:1)

您应该尝试将此代码替换为colab中的smae代码。

import pandas as pd
di={'age': 59, 'bp': 70, 'sg': 1.01, 'al': 1.0, 'su': 3.0, 'rbc': 0.0, 'pc': 0.0, 'pcc': 0.0, 'ba': 0.0, 'bgr': 424.0, 'bu': 55.0, 'sc': 1.7, 'sod': 138.0, 'pot': 4.5, 'hemo': 12.0, 'pcv': 37.0, 'wbcc': 10200.0, 'rbcc': 4.1, 'htn': 1.0, 'dm': 1.0, 'cad': 1.0, 'appet': 1.0, 'pe': 0.0, 'ane': 1.0 }
b=pd.DataFrame(list(di.items()),index=di)
b= b.drop(columns=0)
b=b.T
b['ane'] = b['ane'].astype(float)
tensor = tf.convert_to_tensor(b, dtype=tf.float32)
print(myModel.predict((tensor)))