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

如何在DataFrames.jl中修改数据类型?String转Int报错求解

DataFrames.jl字符串转整数报错的原因及解决方法

报错原因

这段代码报错的核心是类型不匹配:df.x是一个String类型的向量,你试图把parse(Int, df.x[1])得到的Int值直接塞进这个字符串向量里,而Julia的向量要求所有元素类型必须一致,这种跨类型的单个元素赋值自然会触发错误。

解决方法

这里给你几种实用的处理方式:

  • 直接修改原列类型
    直接把整列的字符串批量转成整数,替换原列:

    using DataFrames
    df = DataFrame(x=["1","2","3"])
    df.x = parse.(Int, df.x)
    

    这里parse.(Int, df.x)是广播调用parse函数,一次性把列里所有字符串转成整数,生成一个Int类型的向量,再赋值给df.x,从根源上解决类型问题。

  • 新增转换后的列(保留原列)
    如果不想改动原字符串列,可以用transform新增一列整数类型的数据:

    df = transform(df, :x => ByRow(x -> parse(Int, x)) => :x_int)
    

    执行后会新增一列:x_int,里面就是转换后的整数,原列:x保持不变。

  • 初始化时直接指定类型
    如果提前知道输入的字符串可以转成整数,初始化DataFrame的时候就直接转换:

    df = DataFrame(x=parse.(Int, ["1","2","3"]))
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 22:58:17