使用pd.melt()来对具有多重索引的DataFrame进行"unpivot"操作

5
我想要将一个带有多级索引列的DataFrame进行展开,但我很难得到我想要的确切输出。我尝试使用pd.melt()函数的所有参数进行操作,但是没有成功...
以下是我的输入数据样式:
import pandas as pd
indexes = [['TC1', 'TC2'], ['x', 'z', 'Temp']]
data = pd.DataFrame(columns=pd.MultiIndex.from_product(indexes))

data.loc[0,('TC1', 'x')] = 10
data.loc[0,('TC1', 'z')] = 100
data.loc[0,('TC1', 'Temp')] = 250
data.loc[0,('TC2', 'x')] = 20
data.loc[0,('TC2', 'z')] = 200
data.loc[0,('TC2', 'Temp')] = 255

以下是我希望得到的输出结果,其中“时间”列为数据的索引。

  Time   TC   x    z Temp
0    0  TC1  10  100  250
1    0  TC2  20  200  255

我的真实数据有更多种类的列,如TCx。有什么线索吗?

2个回答

7

给这个一个尝试

data_out = data.stack(level=0).rename_axis(['Time','TC']).reset_index()

Out[87]:
   Time   TC Temp   x    z
0     0  TC1  250  10  100
1     0  TC2  255  20  200

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接