如何将数据集中的字符串条目转换为浮动?
How to convert string entries within a dataset to float?
我正在尝试将字符串转换为数据集中的浮点数。数据集由几列组成,其中一列包含条目:
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.2, 1.3]'})
处理中:
df['col2'] = df['col2'].apply(lambda s: list(map(float, s.strip('[]').split(', '))))
编辑:检查 ,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)))
我正在尝试将字符串转换为数据集中的浮点数。数据集由几列组成,其中一列包含条目:
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.2, 1.3]'})
处理中:
df['col2'] = df['col2'].apply(lambda s: list(map(float, s.strip('[]').split(', '))))
编辑:检查 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)))