Python 基于组的列组合

Python 基于组的列组合,python,pandas,Python,Pandas,我有这样一个数据帧: POLY_KEY_I SP1 SP2 0 FS01080100SM001 POAPRA TOXRYD 1 FS01080100SM001 NaN NaN 2 FS01080100SM001 OXRYD SYMOCC 3 FS01080100SM001 EUPESU POAPRA 4 FS01080100SM001 BOUGRA KOEPYR 5 FS01080100SM002 PO

我有这样一个数据帧:

         POLY_KEY_I     SP1     SP2
0   FS01080100SM001  POAPRA  TOXRYD
1   FS01080100SM001     NaN     NaN
2   FS01080100SM001   OXRYD  SYMOCC
3   FS01080100SM001  EUPESU  POAPRA
4   FS01080100SM001  BOUGRA  KOEPYR
5   FS01080100SM002  POAPRA  EUPESU
6   FS01080100SM002  POAPRA     NaN
7   FS01080100SM002  POAPRA  KOEPYR
In [10]: pd.melt(df, id_vars='POLY_KEY_I', value_name='SP')
Out[10]: 
         POLY_KEY_I variable      SP
0   FS01080100SM001      SP1  POAPRA
1   FS01080100SM001      SP1     NaN
2   FS01080100SM001      SP1   OXRYD
3   FS01080100SM001      SP1  EUPESU
4   FS01080100SM001      SP1  BOUGRA
5   FS01080100SM002      SP1  POAPRA
6   FS01080100SM002      SP1  POAPRA
7   FS01080100SM002      SP1  POAPRA
8   FS01080100SM001      SP2  TOXRYD
9   FS01080100SM001      SP2     NaN
10  FS01080100SM001      SP2  SYMOCC
11  FS01080100SM001      SP2  POAPRA
12  FS01080100SM001      SP2  KOEPYR
13  FS01080100SM002      SP2  EUPESU
14  FS01080100SM002      SP2     NaN
15  FS01080100SM002      SP2  KOEPYR
我想按
POLY_KEY_I
分组,然后在此基础上组合
SP1
SP2

我想要的输出是这样的:

         POLY_KEY_I      SP
0   FS01080100SM001  POAPRA
1   FS01080100SM001  TOXRYD
2   FS01080100SM001     NaN
3   FS01080100SM001     NaN
4   FS01080100SM001   OXRYD
5   FS01080100SM001  SYMOCC
6   FS01080100SM001  EUPESU
7   FS01080100SM001  POAPRA
8   FS01080100SM001  BOUGRA
9   FS01080100SM001  KOEPYR 
10  FS01080100SM002  POAPRA
11  FS01080100SM002  EUPESU
12  FS01080100SM002  POAPRA
13  FS01080100SM002     NaN
14  FS01080100SM002  POAPRA
15  FS01080100SM002  KOEPYR
可以使用从宽到长重塑形状,如下所示:

         POLY_KEY_I     SP1     SP2
0   FS01080100SM001  POAPRA  TOXRYD
1   FS01080100SM001     NaN     NaN
2   FS01080100SM001   OXRYD  SYMOCC
3   FS01080100SM001  EUPESU  POAPRA
4   FS01080100SM001  BOUGRA  KOEPYR
5   FS01080100SM002  POAPRA  EUPESU
6   FS01080100SM002  POAPRA     NaN
7   FS01080100SM002  POAPRA  KOEPYR
In [10]: pd.melt(df, id_vars='POLY_KEY_I', value_name='SP')
Out[10]: 
         POLY_KEY_I variable      SP
0   FS01080100SM001      SP1  POAPRA
1   FS01080100SM001      SP1     NaN
2   FS01080100SM001      SP1   OXRYD
3   FS01080100SM001      SP1  EUPESU
4   FS01080100SM001      SP1  BOUGRA
5   FS01080100SM002      SP1  POAPRA
6   FS01080100SM002      SP1  POAPRA
7   FS01080100SM002      SP1  POAPRA
8   FS01080100SM001      SP2  TOXRYD
9   FS01080100SM001      SP2     NaN
10  FS01080100SM001      SP2  SYMOCC
11  FS01080100SM001      SP2  POAPRA
12  FS01080100SM001      SP2  KOEPYR
13  FS01080100SM002      SP2  EUPESU
14  FS01080100SM002      SP2     NaN
15  FS01080100SM002      SP2  KOEPYR

我会删除
variable
column实际上我需要它来稍后进行连接