Pandas 文件忽略选项

Pandas 文件忽略选项,pandas,dataframe,csv,julia,Pandas,Dataframe,Csv,Julia,我对朱莉娅的熊猫有意见。看看这个代码。我正在尝试读取csv并将其转换为数据帧。但标题未被接受。好的,我用谷歌搜索选项并将header设置为1。但它不起作用。我还设置了数据类型手册,因为前两个应该是Float64,最后一个应该是Int。我没有收到错误消息,但是如果我设置了类型手册,所有列都是float。这不是我想设定的。也许这是一个朱莉娅初学者的错误 julia> using Pandas julia> using CSV julia> ofenbelegung_d

我对朱莉娅的熊猫有意见。看看这个代码。我正在尝试读取csv并将其转换为数据帧。但标题未被接受。好的,我用谷歌搜索选项并将header设置为1。但它不起作用。我还设置了数据类型手册,因为前两个应该是Float64,最后一个应该是Int。我没有收到错误消息,但是如果我设置了类型手册,所有列都是float。这不是我想设定的。也许这是一个朱莉娅初学者的错误

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

另一种选择是使用Pandas.read_csv()而不是csv.jl。但是DataFrames.jl而不是Pandas是更好的选择。