Python ValueError:无法将字符串转换为浮点:';HH#u收入';
我想将传入的数据转换为excel文件中的浮动,我不知道如何做,如果有人能帮助我,我将非常感激Python ValueError:无法将字符串转换为浮点:';HH#u收入';,python,flask,Python,Flask,我想将传入的数据转换为excel文件中的浮动,我不知道如何做,如果有人能帮助我,我将非常感激 with open(file_path, "rt") as csv_file: content = csv.reader(csv_file) for row in content: values = [] for column in row: values.append({'number_va
with open(file_path, "rt") as csv_file:
content = csv.reader(csv_file)
for row in content:
values = []
for column in row:
values.append({'number_value': float(column)})
payload = {
'row': {'values': values}
}
response = prediction_client.predict(model_full_id, payload)
print("Prediction results:")
for result in response.payload:
print("Predicted class name: {}".format(result.display_name))
print("Predicted class score: {}".format(result.classification.score))
有一些数据是字符串格式的,请问如何将字符串格式的数据转换为浮点格式?我不确定CSV文件的数据格式是什么,也不确定加载数据后您想对其执行什么操作。然而,您的问题是如何“将传入数据转换为excel文件中的浮点” 一种简单的方法是使用
pandas
模块读取CSV文件,并将其中的数据类型转换为新的数据帧
您可以使用read\u csv
方法中的dtype
参数来更改正在读取的列的数据类型,例如,将整数值读取为浮点值。请看一下文档
对于上面的代码,您可以尝试以下操作(将“filename.csv”替换为您的文件名,将“column\u name\u”值替换为csv中的值):
可以指定要作为浮点类型导入的列。我们可以通过检查每列的数据类型来确认情况:
print(df.dtypes)
这将显示如下内容:
column_name_1 float64
column_name_2 float64
dtype: object
然后可以使用
iterrows()
函数迭代新数据帧中的行。您可以参考此链接以获取有关使用此项的帮助:您可以将生成异常的代码部分包含在try块中:
with open(file_path, "rt") as csv_file:
content = csv.reader(csv_file)
for row in content:
values = []
for column in row:
try:
values.append({'number_value': float(column)})
except ValueError:
values.append({'number_value': column})
payload = {
'row': {'values': values}
}
response = prediction_client.predict(model_full_id, payload)
print("Prediction results:")
for result in response.payload:
print("Predicted class name: {}".format(result.display_name))
print("Predicted class score: {}".format(result.classification.score))
csv文件中的第一行通常包含列名,而不是值。从第二行开始。是的,你是对的,但之后它会显示这个错误,因为我有一个字符串格式的列,比如'RENTER',错误是'ValueError:无法将字符串转换为float:'RENTER',它仍然无法将字符串转换为float,事实上我想对所有列执行此操作,所有列都应该是float,它再次向我显示了这一点==>无法将google.protobuf.Value.number\u值设置为“RENTER”:“RENTER”具有类型,但字段Value.number\u值应为以下类型之一:(,)您可以添加一个csv文件整行/整列的示例吗?如果可能的话,在您的终端中进行整个回溯。--这是其中一行==>30000,RENTER,German,N,1,25-29,German,1 3RD PL UNIT 703,CA,LONG BEACH,LOS ANGELES,90802,7.00-7.99,7Day,FM,0,CircAdm-这是错误==>TypeError:无法将google.protobuf.Value.number_值设置为“RENTER”:“RENTER”具有类型,但应为以下类型之一:(,)对于字段Value.number\u Value,我不是专家,您向我们提供了很少的细节来帮助我们了解问题。但据我所知,我看到你使用谷歌的协议缓冲区。在本例中,您尝试将字符串值(
RENTER
)分配给需要浮点值的属性google.protobuf.value.number\u值
。所以,试着分析你的代码,看看如何协调你的价值观具有定义的属性。
with open(file_path, "rt") as csv_file:
content = csv.reader(csv_file)
for row in content:
values = []
for column in row:
try:
values.append({'number_value': float(column)})
except ValueError:
values.append({'number_value': column})
payload = {
'row': {'values': values}
}
response = prediction_client.predict(model_full_id, payload)
print("Prediction results:")
for result in response.payload:
print("Predicted class name: {}".format(result.display_name))
print("Predicted class score: {}".format(result.classification.score))