将列表字符串转换为浮点数列表 [pandas]

Shu*_*uki 5 python-3.x pandas

当导入 pandas 时,数据如下所示:

>>> BOM.PriceQty['substrate']
'[200.0, 300.0, 500.0]'
Run Code Online (Sandbox Code Playgroud)

如何将其转换为浮点数列表?尝试了convert_object:

>>> BOM.PriceQty['substrate'].convert_object(convert_numeric=True)
Run Code Online (Sandbox Code Playgroud)

回溯(最近一次调用):文件“”,第 1 行,在 AttributeError 中:“str”对象没有属性“convert_object”

谢谢!

Ian*_*anS 5

这可以很好地将表示浮点数列表的字符串转换为实际的浮点数列表:

s = '[200.0, 300.0, 500.0]'
l = [float(x.strip(' []')) for x in s.split(',')]
Run Code Online (Sandbox Code Playgroud)

该函数删除分割产生的strip所有' ''['、 和字符。']'

结果:

In [1]: l
Out[1]: [200.0, 300.0, 500.0]
Run Code Online (Sandbox Code Playgroud)

如果您想将此转换应用于整个列,请将apply其作为lambda函数:

BOM.PriceQty.apply(lambda s: [float(x.strip(' []')) for x in s.split(',')])
Run Code Online (Sandbox Code Playgroud)