我在julia遇到熊猫问题。看看这个代码。我正在尝试读取csv并将其转换为pandas数据帧。但是这个标题没有被接受。好的,所以我在谷歌上搜索选项,并将标题设置为1。但它不起作用。我还设置了Datatypes手动,因为前两个应该是Float64,最后一个应该是Int。我没有收到错误消息,但如果我设置了类型手动,所有列都是浮点。这不是我想要设定的。也许这是julia初学者的错误。
julia> using Pandas
julia> using CSV
julia> ofenbelegung_df = CSV.File("dichte.csv"; header=1,types=[Float64, Float64, Int]) |> DataFrame
0 1 2
0 20.0 7863.0 1.0
1 100.0 7834.0 1.0
2 200.0 7803.0 1.0
3 300.0 7770.0 1.0
4 400.0 7736.0 1.0
julia> ofenbelegung_df = CSV.File("dichte.csv"; types=[Float64, Float64, Int]) |> DataFrame
0 1 2
0 20.0 7863.0 1.0
1 100.0 7834.0 1.0
2 200.0 7803.0 1.0
3 300.0 7770.0 1.0
4 400.0 7736.0 1.0
julia> ofenbelegung_df = CSV.File("dichte.csv") |> DataFrame
0 1 2
0 20 7863 1
1 100 7834 1
2 200 7803 1
3 300 7770 1
4 400 7736 1
julia>
原始csv文件
Temp;Val;Gr
20;7863;1
100;7834;1
200;7803;1
这两个问题都与Pandas.jl有关,而不是与CSV.jl有关(特别是header=1
是默认值,因此以这种方式传递它没有影响(
以下是的示例
julia> using CSV, Pandas, Tables
julia> file = IOBuffer("""Temp;Val;Gr
20;7863;1
100;7834;1
200;7803;1""")
IOBuffer(data=UInt8[...], readable=true, writable=false, seekable=true, append=false, size=43, maxsize=Inf, ptr=1, mark=-1)
julia> CSV.File(file, types=[Float64, Float64, Int]) |> DataFrame
0 1 2
0 20.0 7863.0 1.0
1 100.0 7834.0 1.0
2 200.0 7803.0 1.0
julia> CSV.File(file, types=[Float64, Float64, Int]) |> columntable
(Temp = [20.0, 100.0, 200.0], Val = [7863.0, 7834.0, 7803.0], Gr = [1, 1, 1])
Pandas.jl的一个变通方案是:
julia> CSV.File(file, types=[Float64, Float64, Int]) |> columntable |> pairs |> DataFrame
Temp Val Gr
0 20.0 7863.0 1
1 100.0 7834.0 1
2 200.0 7803.0 1
请注意,如果您使用DataFrames.jl而不是Pandas.jl,则一切都是正确的:
julia> using CSV, DataFrames
julia> file = IOBuffer("""Temp;Val;Gr
20;7863;1
100;7834;1
200;7803;1""")
IOBuffer(data=UInt8[...], readable=true, writable=false, seekable=true, append=false, size=43, maxsize=Inf, ptr=1, mark=-1)
julia> CSV.File(file, types=[Float64, Float64, Int]) |> DataFrame
3×3 DataFrame
Row │ Temp Val Gr
│ Float64 Float64 Int64
─────┼─────────────────────────
1 │ 20.0 7863.0 1
2 │ 100.0 7834.0 1
3 │ 200.0 7803.0 1
(由于Pandas.jl和DataFrames.jl包之间的名称冲突,我正在使用新的Julia会话。