【问题标题】:Python Pandas cove Columns to the end Row of a DataframePython Pandas 将列移动到数据框的末尾行
【发布时间】:2022-12-17 12:16:31
【问题描述】:

我有以下数据框,我想将列块移动到数据框的底部,

EID     FX1     FY1     FZ1     SUB1    FX2     FY2     FZ2     SUB2    FX3     FY3     FZ3     SUB3
1001    FXA     FYA     FZA     101     FXE     FYE     FZE     102     FXI     FYI     FZI     103
1002    FXB     FYB     FZB     101     FXF     FYF     FZF     102     FXJ     FYJ     FZJ     103
1003    FXC     FYC     FZC     101     FXG     FYG     FZG     102     FXK     FYK     FZK     103
1004    FXD     FYD     FZD     101     FXH     FYH     FZH     102     FXL     FYL     FZL     103

所以它看起来像这样,

EID     FX1     FY1     FZ1     SUB     
1001    FXA     FYA     FZA     101     
1002    FXB     FYB     FZB     101     
1003    FXC     FYC     FZC     101     
1004    FXD     FYD     FZD     101     
1001    FXE     FYE     FZE     102     
1002    FXF     FYF     FZF     102     
1003    FXG     FYG     FZG     102     
1004    FXH     FYH     FZH     102     
1001    FXI     FYI     FZI     103
1002    FXJ     FYJ     FZJ     103
1003    FXK     FYK     FZK     103
1004    FXL     FYL     FZL     103

提前感谢您提供的任何帮助。

【问题讨论】:

标签: python pandas


【解决方案1】:

使用pandas.wide_to_longdroplevel

out = (pd.wide_to_long(df, ['FX', 'FY', 'FZ', 'SUB'], i='EID', j='x')
         .droplevel('x').reset_index()
       )

输出:

     EID   FX   FY   FZ  SUB
0   1001  FXA  FYA  FZA  101
1   1002  FXB  FYB  FZB  101
2   1003  FXC  FYC  FZC  101
3   1004  FXD  FYD  FZD  101
4   1001  FXE  FYE  FZE  102
5   1002  FXF  FYF  FZF  102
6   1003  FXG  FYG  FZG  102
7   1004  FXH  FYH  FZH  102
8   1001  FXI  FYI  FZI  103
9   1002  FXJ  FYJ  FZJ  103
10  1003  FXK  FYK  FZK  103
11  1004  FXL  FYL  FZL  103

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-05
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多