首页 > 解决方案 > ValueError:无法将字符串转换为浮点数:'[0.0267469, 0.0272395, 0.0268747]'

问题描述

我尝试这样的代码:

import pandas as pd
import numpy as np
test_data='train.csv'
csv_reader = pd.read_csv(test_data)
x_list = csv_reader[['spectra']]
x_list = np.array(x_list)
x = [float(o) for o in x_list[0]]
y_list = csv_reader[['molecule']]

然后我得到这个:

Traceback (most recent call last):
File "D:/Users/11825/source/repos/deep/shiyishi.py", line 16, in <module>
  x = [float(o) for o in x_list[0]]
File "D:/Users/11825/source/repos/deep/shiyishi.py", line 16, in <listcomp>
  x = [float(o) for o in x_list[0]]
ValueError: could not convert string to float: '[0.0267469, 0.0272395, 
    0.0268747, 0.0267555]'

这是数据的图片:

在此处输入图像描述

我怎样才能保存它?

标签: pythonarrays

解决方案


保存和加载数据框后,存储在列spectra中的列表实际上存储为字符串。

这样做后立即尝试read_csv

import ast
csv_reader['spectra'].apply(ast.literal_eval)
csv_reader['molecule'].apply(ast.literal_eval)

推荐阅读