В настоящее время у меня есть фрейм данных, который выглядит как
PS PSX1 PSX2 PSX3 PSX4
P TEMP Pat P TEMP Pat P TEMP Pat P TEMP Pat
.01 77 IDLE .04 77 IDLE .003 77 IDLE .19 77 IDLE
.03 77 WRITE .1 77 WRITE .011 77 WRITE .28 77 WRITE
.02 77 READ .04 77 READ .004 77 READ .25 77 READ
.03 77 WRITE .04 77 WRITE .010 77 WRITE .39 77 WRITE
.02 77 READ .04 77 READ .195 77 READ .24 77 READ
.01 230 IDLE .04 230 IDLE .003 230 IDLE .19 230 IDLE
.02 230 WRITE .1 230 WRITE .019 230 WRITE .29 230 WRITE
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
В конечном итоге в кадре данных температура меняется на 302.
Я хотел знать, есть ли способ изменить приведенный выше фрейм данных так, чтобы он выглядел так, как показано ниже (он все равно должен включать PSX3 и PSX4, я просто уменьшил его, чтобы на него было легче смотреть)
PS PSX1 PSX2
TEMP 77 230 302 77 230 302
P P P P P P
IDLE .01 .01 .01 .04 .04 .04
WRITE .03 .02 .04 .1 .1 .2
READ .02 .03 .03 .04 .1 .1
WRITE .03 .02 .02 .09 .1 .1
READ .02 .02 .02 .1 .1 .1
Я сделал первую группировку, используя эти 2 строки кода
df1 = df1.assign(newIndex = df1.groupby('PS').cumcount())
df1 = df1.set_index(['newIndex', 'PS']).unstack().swaplevel(0, axis = 1).sort_index(axis = 1, level = 0)
Я попытался сделать это снова, но на уровне 1, и я не могу заставить его работать. Любая помощь будет оценена, спасибо заранее!