Python Pandas 的 index_col 参数在 Julia CSV 中等效

问题描述 投票:0回答:1

我有一个以下形式的 CSV 文件(忽略前两行的空格,这只是为了字母的良好对齐):

 , ,E,E,F,F
 , ,G,H,G,H
A,C,1,2,3,4
A,D,5,6,7,8
B,C,9,0,1,2
B,D,3,4,5,6

在Python中,通过使用pandas库创建数据框,如下所示:

df = pd.read_csv(path, header=[0,1], index_col=[0,1])

然后我可以通过提及标题行和索引列的值来获取值:

>>> df.loc[("A","D"), ("E","G")]
5

但是在 Julia 中,使用 CSV 和 DataFrame 包,我只能将行“分组”为标题,而不能将列“分组”。现在,我这样做:

df = CSV.read(path, DataFrame, header=[1,2], normalizenames=true) 

我在该函数的文档中找不到启用此功能的任何选项(https://csv.juliadata.org/stable/reading.html

有没有办法,也许使用其他函数或包,在 Julia 中做我在 Python 中能做的事情?

python pandas dataframe csv julia
1个回答
0
投票
您可能正在寻找类似的东西:

using CSV, DataFrames, NamedArrays df = CSV.read(path, DataFrame; header=false) M = NamedArray( parse.(Int,Array(df[3:end,3:end])), ( map(splat(*),eachrow(df[3:end,1:2])), map(splat(*),eachcol(df[1:2,3:end])) ) )
输出:

4×4 Named Matrix{Int64} A ╲ B │ EG EH FG FH ──────┼─────────────── AC │ 1 2 3 4 AD │ 5 6 7 8 BC │ 9 0 1 2 BD │ 3 4 5 6
    
© www.soinside.com 2019 - 2024. All rights reserved.