假设我在Pandas 中有这样一个数据帧:
df = pd.DataFrame({'a':[4,4,8,8],'b':[4,5,6,5], 'd':[0,1,2,1]})
multi_idx = pd.MultiIndex.from_arrays([[0,0,1,1],[0,1,0,1]])
df.index= multi_idx
它输出这个形状:
a b d
0 0 4 4 0
1 4 5 1
1 0 8 6 2
1 8 5 1
您可以看到,列a
的值是基于第一级索引重复的.我正在寻找一种方法来避免这种重复.当然,其中之一是将信息拆分到更多的数据帧上,即,具有用于列a
和第一级索引的数据帧.然而,我想知道是否有一种方法可以使用多索引和多级别列来创建一个值与更高级别索引的所有行相对应的列.
从视觉上看,我想要这样的东西:这在Pandas 身上可能吗?
| | | a | b | c |
|----|----|-----|-----|-----|
|idx1|idx2| | | |
|----|----|-----|-----|-----|
| | 0 | | 4 | 0 |
| 0 |----| 4 |-----|-----|
| | 1 | | 5 | 1 |
|----|----|-----|-----|-----|
| | 0 | | 6 | 2 |
| 1 |----| 8 |-----|-----|
| | 1 | | 5 | 1 |
|----|----|-----|-----|-----|