如何将Pandas DataFrame列中字符串格式浮点列表转换为实际列表类型
解决方案
方法1:使用ast.literal_eval(最简洁,推荐)
这是最省心的方案,直接安全解析字符串格式的Python字面量,无需手动处理字符串规则:
import ast # 对interval列直接做类型转换 df['interval'] = df['interval'].apply(ast.literal_eval)
转换后直接得到存储float元素的列表类型,和手动写for循环遍历解析的效果完全一致,但代码更简洁,执行效率也更高。
方法2:字符串向量化处理(适合超大数据量场景)
如果你的DataFrame数据量极大,想要更高的执行性能,可以用pandas原生的向量化字符串方法处理:
# 先移除首尾方括号,再按逗号分割,最后批量转float df['interval'] = df['interval'].str.strip('[]')\ .str.split(',\s*')\ .apply(lambda x: [float(num) for num in x])
你可以通过以下代码验证转换结果:
# 确认列元素是列表类型 print(type(df.iloc[0]['interval'])) # 确认列表内元素是float类型 print(type(df.iloc[0]['interval'][0]))
内容的提问来源于stack exchange,提问作者Vesnič
相关产品推荐
相关产品推荐

