dataframe - 错误:未找到参数名称,尝试了 df.Data 但它不起作用??(朱莉娅)
问题描述
我正在使用列标题为“数据”的数据框,但是当我这样做时
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
但这就是全名...
我一直遇到这个问题。谢谢!
解决方案
首先,我建议您将 DataFrames.jl 安装更新到最新版本 1.2.2。您使用的版本已超过一年。很可能您没有使用包的每个项目配置,并且遇到了本文中解释的问题。
现在-您的问题是您的数据中没有四列,而是一列,因此您需要将其拆分为四列。您可以这样做(请注意,我在这里写的内容可能不适用于您的 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 Vector{Float64}:
3.1
4.1
我分两步执行了转换,以便更容易理解
推荐阅读
- neo4j - 在 Neo4j 中创建面向未来的无术语关系是否有最佳方法?
- r - 乘矩阵 R
- node.js - 为机器人调试 JS
- wordpress - 在 WordPress 中保存用户类别
- heroku - 您将 Procfile 放在 JAR 部署中的什么位置?
- android-studio - 在 Android Studio 中键入会产生 3 个引号而不是 2 个
- python - PyTorch CNN 由于内存消耗过多而无法初始化
- javascript - 尝试修改随机化 javascript 以适应不同的屏幕宽度
- .net - 使用 Okta 授权外部 API 调用
- node.js - NestJS 服务返回目录中的所有文件