CSV.File忽略选项



我在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会话。

相关内容

  • 没有找到相关文章

最新更新