我在合并单元格中导入具有列名的Excel文件。当我创建一个熊猫数据框时,我所拥有的是这样的:
|------|------|------|------|------|------|------|------|------|
| | | | A | A | B | B | C | C |
|------|------|------|------|------|------|------|------|------|
| K | L | M | X | Y | X | Y | X | Y |
|------|------|------|------|------|------|------|------|------|
| k1 | l1 | m1 | 1 | 2 | 3 | 4 | 5 | 6 |
|------|------|------|------|------|------|------|------|------|
而且我希望将firts列名称作为新列添加,如下所示:
|------|------|------|------|------|------|
| K | L | M |value | X | Y |
|------|------|------|------|------|------|
| k1 | l1 | m1 | A | 1 | 2 |
|------|------|------|------|------|------|
| k1 | l1 | m1 | B | 3 | 4 |
|------|------|------|------|------|------|
| k1 | l1 | m1 | C | 5 | 5 |
|------|------|------|------|------|------|
[如果您有下面的数据框,我们只需要做stack
s=df.stack(level=0).reset_index()
K L M level_3 X Y
0 k1 l1 m1 A 1 2
1 k1 l1 m1 B 3 4
2 k1 l1 m1 C 5 6
样本数据
A B C
X Y X Y X Y
K L M
k1 l1 m1 1 2 3 4 5 6
df.to_dict()
{('A', 'X'): {('k1', 'l1', 'm1'): 1}, ('A', 'Y'): {('k1', 'l1', 'm1'): 2}, ('B', 'X'): {('k1', 'l1', 'm1'): 3}, ('B', 'Y'): {('k1', 'l1', 'm1'): 4}, ('C', 'X'): {('k1', 'l1', 'm1'): 5}, ('C', 'Y'): {('k1', 'l1', 'm1'): 6}}