如何在python中转换或融化列?
我有这个表格,但我想把它做成一个简单的表格。现有的表格是这样的:
group mp_current mh_current mp_total mh_total
contractor 25 4825 0 0
我想将表格转换成这种形式:
group mp mh period
contractor 25 4825 current
contractor 0 0 total
我将有一个专门用于 mp 和 mh 的列,还有一个额外的列作为周期列。
我如何在 python 中执行此操作?
回答
wide_to_long
您指定存根名称(列前缀)、分隔符 ( '_'),并且后缀是任何内容 ( '.*'),因为它默认需要数字。该j参数成为分隔符后值的列标签。引用的列i需要对每一行进行唯一标记。
df1 = (pd.wide_to_long(df, i='group', j='period',
stubnames=['mh', 'mp'], sep='_', suffix='.*')
.reset_index())
group period mh mp
0 contractor current 4825 25
1 contractor total 0 0