将熊猫的两行转换为一行



我想转换以下数据帧,

ID              TYPE                   A                   B 
0        1            MISSING                  0.0                 0.0   
1        2                 1T                  1.0                 2.0   
2        2                 2T                  3.0                 4.0   
3        3            MISSING                  0.0                 0.0   
4        4                 2T                 10.0                 4.0   
5        5                CBN                 15.0                20.0   
6        5                DSV                 25.0                35.0 

至:

ID    MISSING_A    MISSING_B    1T_A      1T_B      2T_A      2T_B     CBN_A     CBN_B     DSV_A     DSV_B 
0        1            0.0       0.0       NaN       NaN       NaN       NaN       NaN       NaN       NaN       NaN   
1        2            NaN       NaN       1.0       2.0       3.0       4.0       NaN       NaN       NaN       NaN   
3        3            0.0       0.0       NaN       NaN       NaN       NaN       NaN       NaN       NaN       NaN   
4        4           10.0       4.0       NaN       NaN      10.0       4.0       NaN       NaN       NaN       NaN   
5        5            NaN       NaN       NaN       NaN       NaN       NaN      15.0      20.0      25.0      35.0   

对于具有多种类型的ID,A和B的多行合并为一行,如上所示。

您正在寻找一个枢轴,它最终会给您一个多索引。您需要连接这些列才能获得您要查找的后缀。

df = df.pivot(index='ID',columns='TYPE', values=['A','B'])
df.columns = ['_'.join(reversed(col)).strip() for col in df.columns.values]
df.reset_index()

最新更新