【发布时间】:2018-12-06 13:09:43
【问题描述】:
目前我有一个看起来像的数据框
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
我使用这两行代码进行了第一次分组
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 级时,我似乎无法使其正常工作。任何帮助将不胜感激,在此先感谢!
【问题讨论】:
-
对预期结果不是很清楚。您能否将其限制为两个只有三个完整的列记录,并显示您对这三个完整列的预期输出?
-
@ScottBoston 我编辑了输出表,这样更有用吗?
标签: python python-2.7 pandas pandas-groupby