Dataframe 使用Matplotlib打印名称中包含空格的数据框列

Dataframe 使用Matplotlib打印名称中包含空格的数据框列,dataframe,matplotlib,julia,compatibility,removing-whitespace,Dataframe,Matplotlib,Julia,Compatibility,Removing Whitespace,我有DataFrames,它们的列名中有空格,因为生成它们的CSV文件的名称中也有空格。DataFrames是用这些行生成的 csvnames::Array{String,1} = filter(x -> endswith(x, ".csv"), readdir(CSV_DIR)) dfs::Dict{String, DataFrame} = Dict( csvnames[i] => CSV.File(CSV_DIR * csvnames[i]) |> Da

我有
DataFrames
,它们的列名中有空格,因为生成它们的CSV文件的名称中也有空格。
DataFrame
s是用这些行生成的

csvnames::Array{String,1} = filter(x -> endswith(x, ".csv"), readdir(CSV_DIR))
dfs::Dict{String, DataFrame} = Dict( csvnames[i] => CSV.File(CSV_DIR * csvnames[i]) |> DataFrame for i in 1:length(csvnames))
DataFrame
s有列名,如“Tehtävä1”,但当我尝试访问该列时,以下表达式均无效(此处
ecols
是一个数据帧):

  • plot=axes.plot(ecols[Symbol(“Tehtävä1”))
    生成错误
    TypeError(“float()参数必须是字符串或数字,而不是“PyCall.jlwrap”)

  • plot=axes.plot(ecols[:Tehtäväu 1])
    生成错误
    error:LoadError:ArgumentError:column name:Tehtäväu 1在数据帧中找不到;现有最相似的名称是::Tehtävä1

  • plot=axes.plot(ecols[:Tehtävä1])
    引发错误
    error:LoadError:MethodError:no-method匹配键入的\u hcat(::DataFrame,::Symbol,::Int64)

  • 因此,我似乎无法绘制名称中有空格的
    DataFrame
    列。打印它们的效果很好,就像生产线一样

    println(ecols[Symbol("Tehtävä 1")])
    
    产生和排列浮点数:
    [1.0、1.0、1.0、1.0、1.0、1.0、1.0、1.0、1.0、1.0、1.0、1.0]
    ,应该是这样的。Matplotlib是否与列名称中带有空格的数据框不兼容?如果是,如何从数据框的列中删除所有空格

    编辑
    我忘了提到一个非常关键的点:
    DataFrame
    包含
    缺少的值,这是Matplotlib无法理解的。这导致了错误1。我仍然非常想知道是否有一种方法可以消除表列名中的任何空白,可能是在构建
    数据帧期间,第一种方法工作得很好,但您似乎没有正确使用PyPlot.jl(特别是您尝试创建一个名为
    plot
    的变量,该变量将覆盖PyPlot.jl中的
    plot
    函数)

    要确保其正常运行,请执行以下操作:

    julia> df = DataFrame(Symbol("Tehtävä 1") => 1.0:5.0)
    5×1 DataFrame
    │ Row │ Tehtävä 1 │
    │     │ Float64   │
    ├─────┼───────────┤
    │ 1   │ 1.0       │
    │ 2   │ 2.0       │
    │ 3   │ 3.0       │
    │ 4   │ 4.0       │
    │ 5   │ 5.0       │
    
    julia> plot(df[Symbol("Tehtävä 1")])
    1-element Array{PyCall.PyObject,1}:
     PyObject <matplotlib.lines.Line2D object at 0x000000003F9EE0B8>
    

    当然,你是对的,但我对我的原始帖子进行了编辑。我完全忘记了Matplotlib无法理解
    缺少的
    值,这导致了错误#1。将这些值更改为
    Nan
    消除了问题。
    names!(df, Symbol.(replace.(string.(names(df)), Ref(r"\s"=>""))))