首页 > 解决方案 > 使用 Python 根据后缀重塑数据框

问题描述

我需要根据 X 列的后缀“重塑”数据框。

X    Y
a_1  12
b_1  20
c_1  30
a_2  2
b_2  56
c_2  70
d_2  2

并获得:

    _1   _2
a   12   2
b   20   56
c   30   70
d   0    2

提前谢谢了

标签: pythonpandasdataframereshape

解决方案


这是使用的一种方法pivot

(df.X.str.split(r'_', expand=True)
     .assign(y=df.Y.values)
     .pivot(0,1,'y')
     .fillna(0)
     .astype(int))

1   1   2
0        
a  12   2
b  20  56
c  30  70
d   0   2

推荐阅读