首页 > 解决方案 > ValueError:无法将字符串转换为浮点数:'ane'

问题描述

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

标签: python-3.xpandastensorflowdictionarykeras

解决方案


你应该试试这个代码,我也替换了 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)))

推荐阅读