[英]How to change column values to rows value based on condition
df:
items M1 v1 v2 v3
A c1 56 52 25
A c2 66 63 85
B c1 29 76 36
B c2 14 24 63
df_输出:
items M1 C1 C2
A V1 56 66
A V2 52 63
A V3 25 85
B V1 29 14
B V2 76 24
B V3 36 60
我需要像示例中那样将列值更改为行值。 我尝试了一些 stack() 函数,但没有奏效。
您正在寻找结合stack
和unstack
:
(df.set_index(['items','M1'])
.unstack('M1') # unstack promotes M1 to columns
.stack(level=0) # stack turns original columns to index level
.rename_axis(columns=None, index=['item','M1']) # rename to match output
.reset_index()
)
输出:
item M1 c1 c2
0 A v1 56 66
1 A v2 52 63
2 A v3 25 85
3 B v1 29 14
4 B v2 76 24
5 B v3 36 63
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.