You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Pandas列中的列表追加到Python列表时元素类型异常问题

这个问题大概率是你的col1列里的原始列表本身就混合了字符串和数值类型——可能是数据导入(比如从CSV/Excel读取)时解析出了问题,导致第一个元素被存成了字符串。下面给你几种简单的解决思路:

方法1:先统一列内列表的类型,再提取

先把col1中每个子列表的所有元素转成float类型,再提取成Python列表:

# 统一col1内每个元素的类型为float
df['col1'] = df['col1'].apply(lambda x: [float(item) for item in x])
# 直接转成Python列表
new_list = df['col1'].tolist()

方法2:如果是读取时的字符串列表解析问题

如果你的col1是从字符串形式的列表(比如"[51.97559, 4.12565]")解析来的,先通过ast.literal_eval解析成列表,再转类型:

import ast
# 解析字符串为列表并统一转float
df['col1'] = df['col1'].apply(lambda x: [float(num) for num in ast.literal_eval(x)])
new_list = df['col1'].tolist()

方法3:在原有循环中直接处理类型

如果你想保留原来的循环写法,在append的时候直接转换每个元素的类型:

new_list = []
for val in df['col1'].values:
    # 遍历子列表的每个元素,转成float后再加入new_list
    new_list.append([float(item) for item in val])

这样处理后,new_list里的所有元素就都是数值类型了。

内容的提问来源于stack exchange,提问作者jovicbg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:53:05