我有这样的数据帧sample_df
,
id pd pd_dt pd_tp pd.1 pd_dt.1 pd_tp.1 pd.2 pd_dt.2 pd_tp.2
0 1 100 per year 468 200 per year 400 300 per year 320
1 2 100 per year 60 200 per year 890 300 per year 855
我需要这样的输出,
id pd pd_dt pd_tp
1 100 per year 468
1 200 per year 400
1 300 per year 320
2 100 per year 60
2 200 per year 890
2 300 per year 855
我尝试了以下内容,
sample_df.stack().reset_index().drop('level_1',axis=1)
这不起作用。我有pd
,pd_dt
,pd_tp
与.1
,.2
..值重复。
我有如何实现输出?
您想要pd.wide_to_long
,但是要进行一些调整,因为您的前几列与其余的列不共享相同的模式:
您可以这样做:
您可以使用numpy split将其拆分为n个数组并将它们重新合并在一起。然后,通过新数据框中的行数重复id列。