我在python中使用pandas
库来生成多索引数据,即列是多索引的。指数为category
和source
。我将此数据保存为.csv
文件。在该文件中,第一行是category
值,第二行是对应的source
值,然后是数据。我使用这个文件在Orange3软件中可视化。但它只需要第一行作为列名,如何将列名作为两者的组合。
如果可能的话,我只想将整个事物想象成直方图。
category
和source
)+ 1(行标签)变量,3d可视化最好或 category
和source
组合变量)+ 1(行标签),2d可视化 category 1 1 1 1 1 2 2
source a b c d e f g
label
l1 1 2 3 4 5 6 7
l2 4 5 6 7 8 9 10
答案 0 :(得分:1)
根据documentation,Orange不支持读取多索引数据。
为了可视化数据,在将数据导出到csv之前,您需要将其转换为普通的表格格式(每个要素一列)。
执行此操作的一种方法是DataFrame
&#39} unstack
方法:
df.unstack().to_csv("file.csv")
这将生成以下格式的文件:
category source label
1 a l1 1
1 a l2 4
1 b l1 2
...
这样,您可以在Orange中使用category和source作为单独的变量。
要加入类别和来源,在导出到csv之前需要flatten the hierarchical index:
df.columns = [' '.join(col).strip() for col in df.columns.values]
df.to_csv(file.csv)
这将按以下格式生成数据:
label 1 a 1 b ...
l1 1 2
l2 4 5