我正在尝试将字符串转换为数据集中的浮点数。数据集由几列组成,其中一列包含条目:
col1 | col2 |
---|---|
x | [1.1,1.2,1.3 ... |
当我使用 pd.to_numeric
时,出现以下错误:
无法解析位置 0 处的字符串“[1.1,1.2........]”。
**这是我的代码的简化版本,其中的数字类似于 2.1874960973678963
我正在尝试将字符串转换为数据集中的浮点数。数据集由几列组成,其中一列包含条目:
col1 | col2 |
---|---|
x | [1.1,1.2,1.3 ... |
当我使用 pd.to_numeric
时,出现以下错误:
无法解析位置 0 处的字符串“[1.1,1.2........]”。
**这是我的代码的简化版本,其中的数字类似于 2.1874960973678963
假设您要将浮点数列表 ("[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 Ecker,ast.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)))