错误:未找到参数名称,尝试了 df.Data 但它不起作用?? (朱莉娅)
Posted
技术标签:
【中文标题】错误:未找到参数名称,尝试了 df.Data 但它不起作用?? (朱莉娅)【英文标题】:Error: Argument name not found, tried df.Data and it's not working?? (Julia) 【发布时间】:2021-12-21 13:34:32 【问题描述】:我正在使用列标题为“数据”的数据框,但当我这样做时
df.Data
ERROR: ArgumentError: column name :Data not found in the data frame
Stacktrace:
[1] lookupname
@ C:\Users\jerem\.julia\packages\DataFrames\S3ZFo\src\other\index.jl:250 [inlined]
[2] getindex
@ C:\Users\jerem.julia\packages\DataFrames\S3ZFo\src\other\index.jl:259 [内联] [3] getindex(df::DataFrame, #unused#::typeof(!), col_ind::Symbol) @DataFrames C:\Users\jerem.julia\packages\DataFrames\S3ZFo\src\dataframe\dataframe.jl:361 [4] getproperty(df::DataFrame, col_ind::Symbol) @DataFrames C:\Users\jerem.julia\packages\DataFrames\S3ZFo\src\abstractdataframe\abstractdataframe.jl:295 [5] ***范围 @REPL[56]:1
但这就是全名...
我一直在处理这个问题。谢谢!
【问题讨论】:
【参考方案1】:首先,我建议您将 DataFrames.jl 安装更新到最新版本 1.2.2。您使用的版本已超过一年。很可能您没有使用包的每个项目配置,并且遇到了this post 中解释的问题。
现在 - 您的问题是您的数据中没有四列,而是一列,因此您需要将其拆分为四列。您可以这样做(请注意,我在这里写的内容可能不适用于您的 DataFrames.jl 版本,因为它很旧 - 但在您更新到 DataFrames.jl 1.2.2 后它会起作用):
julia> using DataFrames
julia> df = DataFrame("Year Data Min Max" => ["1979 3.1 3.0 3.2", "1980 4.1 4.0 4.2"])
2×1 DataFrame
Row │ Year Data Min Max
│ String
─────┼───────────────────
1 │ 1979 3.1 3.0 3.2
2 │ 1980 4.1 4.0 4.2
julia> df2 = select(df, 1 => ByRow(x -> split(x, " ")) => [:Year, :Data, :Min, :Max])
2×4 DataFrame
Row │ Year Data Min Max
│ SubStrin… SubStrin… SubStrin… SubStrin…
─────┼────────────────────────────────────────────
1 │ 1979 3.1 3.0 3.2
2 │ 1980 4.1 4.0 4.2
julia> df3 = select(df2,
1 => ByRow(x -> parse(Int, x)),
2:4 .=> ByRow(x -> parse(Float64, x)),
renamecols=false)
2×4 DataFrame
Row │ Year Data Min Max
│ Int64 Float64 Float64 Float64
─────┼──────────────────────────────────
1 │ 1979 3.1 3.0 3.2
2 │ 1980 4.1 4.0 4.2
julia> df3.Data
2-element VectorFloat64:
3.1
4.1
为了便于理解,我分两步进行了转换
【讨论】:
以上是关于错误:未找到参数名称,尝试了 df.Data 但它不起作用?? (朱莉娅)的主要内容,如果未能解决你的问题,请参考以下文章