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

如何将TSV文件中sequences列以np.float64类型导入Pandas?

解决TSV文件中sequences列导入为np.float64类型的问题

错误原因

你的sequences列存储的是字符串格式的嵌套列表,直接通过dtype=np.float64全局指定类型时,pandas会尝试将整个字符串转换为float,这显然无法完成,因此抛出ValueError。

解决步骤

  1. 先正常读取TSV文件
    不指定全局dtype,先把数据读入DataFrame:

    import pandas as pd
    import numpy as np
    import ast
    
    df = pd.read_csv('AARS.tsv', sep='\t')
    
  2. 解析字符串并转换为np.float64类型数组
    使用ast.literal_eval将字符串格式的列表转换为Python原生列表,再转为指定dtype=np.float64的numpy数组:

    df['sequences'] = df['sequences'].apply(lambda x: np.array(ast.literal_eval(x), dtype=np.float64))
    
  3. 可选:异常处理(避免格式错误导致崩溃)
    如果文件中存在格式不规范的sequences值,可以添加异常处理逻辑:

    def parse_sequence(s):
        try:
            lst = ast.literal_eval(s)
            return np.array(lst, dtype=np.float64)
        except (SyntaxError, ValueError):
            return np.nan  # 用NaN标记无效数据,也可根据需求替换为其他值
    
    df['sequences'] = df['sequences'].apply(parse_sequence)
    

验证结果

执行完上述步骤后,可通过以下代码确认类型是否正确:

# 查看第一个元素的数据类型
print(df['sequences'].iloc[0].dtype)  # 输出应为float64

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 10:45:35