Python 将两行转换为一行

Python 将两行转换为一行,python,pandas,dataframe,nan,Python,Pandas,Dataframe,Nan,我想在dataframe下面进行转换 ID TYPE A B 0 1 MISSING 0.0 0.0 1 2 1T 1.0 2.0 2 2

我想在dataframe下面进行转换

         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,请将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()

这仍然会为ID-2创建两行,我需要将这两行的值拆分为1T和2T列,但在最终输出中只有一个ID-2条目
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()