gpt4 book ai didi

python - 根据列前缀 reshape 数据框

转载 作者:行者123 更新时间:2023-11-28 21:33:00 25 4
gpt4 key购买 nike

我有一个 csv 文件,我将其读入数据框中,如下所示

    Time  AP1  AQ1  AP2  AQ2  AP3  AQ3  AP4  AQ4  AP5  AQ5
0 2000 100 10 300 30 500 50 700 70 900 90
1 2001 105 15 305 35 505 55 705 75 905 95
2 2002 110 20 310 40 510 60 710 80 910 100
3 2003 115 25 315 45 515 65 715 85 915 105
4 2004 120 30 320 50 520 70 720 90 920 110
5 2005 125 35 325 55 525 75 725 95 925 115

如何在不使用循环的情况下 reshape 数据框,以便只有时间、AP 和 AQ 列?

    Time  AP    AQ
0 2000 100 10
0 2000 300 30
0 2000 500 50
0 2000 700 70
0 2000 900 90
1 2001 105 15
....

提前感谢您提供的任何建议。

最佳答案

您可以使用pd.wide_to_longAPAQ 设置为 stubnames:

(pd.wide_to_long(df, stubnames=['AP','AQ'], i='Time', j='j')
.droplevel(1).reset_index())

Time AP AQ
0 2000 100 10
1 2001 105 15
2 2002 110 20
3 2003 115 25
4 2004 120 30
5 2005 125 35
6 2000 300 30
7 2001 305 35
8 2002 310 40
9 2003 315 45
10 2004 320 50
11 2005 325 55
12 2000 500 50
13 2001 505 55
14 2002 510 60
15 2003 515 65

更新

对于包含重复项的 Time 列,您可以执行以下操作:

(pd.wide_to_long(df.reset_index(), stubnames=['AP','AQ'], i='index', j='j')
.reset_index(drop=True))

Time AP AQ
0 2000 100 10
1 2000 105 15
2 2002 110 20
3 2003 115 25
4 2004 120 30
5 2005 125 35
6 2000 300 30
7 2000 305 35
8 2002 310 40
9 2003 315 45
10 2004 320 50
11 2005 325 55
12 2000 500 50

关于python - 根据列前缀 reshape 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55244569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com