从多索引csv fi创建多索引数据帧

2024-10-03 21:26:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从现有的csv文件创建一个多索引数据帧(最终是一个csv文件)。我很难在数据帧上进行迭代,因为它包含两个以上的维度。我如何做到这一点?原始csv文件如下所示:

"Products" "Technologies" Region1 Region2 Region3
Prod1       Tech1         16      0       12
Prod2       Tech2         0       12      22
Prod3       Tech3         22      0       36

我想创建一个csv文件,如下所示:

"Technologies"  "Regions"   Prod1   Prod2   Prod3
Tech1           Region1     16      0       0
Tech1           Region2     0       0       0
Tech1           Region3     12      0       0
Tech2           Region1     0       0       0
Tech2           Region2     0       12      0
Tech2           Region3     0       22      0
Tech3           Region1     0       0       22
Tech3           Region2     0       0       0
Tech3           Region3     0       0       36

Tags: 文件csv数据productsregionstechnologiestech1tech2
1条回答
网友
1楼 · 发布于 2024-10-03 21:26:41

stackunstack是重塑数据帧的有用函数,前者将列索引转换为行索引,后者则相反,也是check this tutorial

# transform regions to a separate column
(df.set_index(["Products", "Technologies"]).stack()

# rename the Region column and remove the name for Products column as it will be unstacked
   .rename_axis(("", "Technologies", "Regions"))

# unstack the product column to headers and reset the index to be columns
   .unstack(level=0, fill_value=0).reset_index())

enter image description here

相关问题 更多 >