如何将数据集中的字符串条目转换为浮点数? 元素是字符串元素是字符串列表

我正在尝试将字符串转换为数据集中的浮点数。数据集由几列组成,其中一列包含条目:

col1 col2
x [1.1,1.2,1.3 ...

当我使用 pd.to_numeric 时,出现以下错误: 无法解析位置 0 处的字符串“[1.1,1.2........]”。

**这是我的代码的简化版本,其中的数字类似于 2.1874960973678963

je8600 回答:如何将数据集中的字符串条目转换为浮点数? 元素是字符串元素是字符串列表

元素是字符串

假设您要将浮点数列表 ("[1.1,1.2,1.3]") 的字符串表示形式转换为浮点数列表:

输入:

df = pd.DataFrame({'col1':['x'],'col2':'[1.1,1.3]'})

处理:

df['col2'] = df['col2'].apply(lambda s: list(map(float,s.strip('[]').split(','))))

编辑:检查 link provided by @Henry Eckerast.literal_eval

有一个很好的解决方案
import ast
df['col2'] = df['col2'].apply(ast.literal_eval)

元素是字符串列表

如果您的元素已经是字符串列表 (['1.1','1.2','1.3']),请使用:

df['col2'] = df['col2'].apply(lambda x: [float(i) for i in x])

或:

df['col2'] = df['col2'].apply(lambda x: list(map(float,x)))
本文链接:https://www.f2er.com/3366.html

大家都在问