Python中如何将含加法运算的字符串转换为float类型?
解决方法
直接用astype(np.float)无法转换带运算表达式的字符串,得先计算出表达式结果再转成浮点数,给你两种实用方案:
方案一:用eval快速计算(适合数据可信的场景)
利用Pandas的apply方法对每个单元格执行eval,直接算出加法结果:import pandas as pd import numpy as np # 假设你的DataFrame已读取完成 df['ScreenSize'] = df['ScreenSize'].apply(eval).astype(np.float)注意:如果数据来源不可信,不要用eval,避免代码注入风险。
方案二:手动拆分计算(更安全)
把字符串按+拆分,去除数字前后的空格后转成浮点数再求和,彻底规避eval的安全隐患:def calculate_total(s): nums = s.split('+') return sum(float(num.strip()) for num in nums) df['ScreenSize'] = df['ScreenSize'].apply(calculate_total).astype(np.float)
内容的提问来源于stack exchange,提问作者codproe
相关产品推荐
相关产品推荐

