ValueError:无法将字符串转换为浮点型:'HH_Income'

时间:2019-10-30 10:39:03

标签: python flask

我想将传入数据转换为excel文件中的浮点数,但我不知道该怎么做,如果有人可以帮助我,我将不胜感激

back_sb = xsb.encode('hex')
back_sb == sb # returns True

有一些字符串格式的数据,请问如何将字符串格式的数据转换为浮点数?

2 个答案:

答案 0 :(得分:0)

我不确定您的CSV文件的数据格式是什么,或者一旦加载后要对数据进行处理。但是,您的问题询问如何“将传入数据转换为在excel文件中浮动”。

一种简单的方法是使用pandas模块读取读取的CSV文件并将其中的数据类型转换为新的数据帧。

您可以在dtype方法中使用read_csv参数来更改正在读取的列的数据类型,例如读取一个整数值作为浮点数。看看文档here

根据上面的代码,您可以尝试类似的操作(将'filename.csv'替换为文件名,将'column_name _'值替换为CSV):

import pandas as pd
import numpy as np

df = pd.read_csv('filename.csv', dtype = {'column_name_1': np.float64, 'column_name_2': np.float64,})

您可以指定要导入哪些列作为浮点类型。我们可以通过检查每列的数据类型来确认是否是这种情况:

print(df.dtypes)

然后应显示如下内容:

column_name_1    float64
column_name_2    float64
dtype: object

然后,您可以使用iterrows()函数来遍历新数据框中的行。您可以参考此链接以获取有关使用此链接的帮助:How to iterate over rows in a DataFrame in Pandas?

答案 1 :(得分:0)

您可以将生成异常的代码部分放在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))