Будет ли это работать?
Итак, дайте мне знать, если этот образец работает так, как вы хотите:
m=pd.DataFrame({'A':("S2","S2","S5","S5",'S2'),'B':("S3","S4","S2","S4",'S5'), 'projects':(5,2,1,1,6)})
Это было бы примерно так:
A B projects
0 S2 S3 5
1 S2 S4 2
2 S5 S2 1
3 S5 S4 1
4 S2 S5 6
Теперь я предположил, что вы хотите, чтобы, если когда-нибудь, скажем, S2 и S5 собрались вместе, либо в столбце 1, либо в столбце 2, они должны учитываться так же, как и наоборот. Воспользовавшись этой свободой, я провел некоторый анализ и получил следующее:
f=np.sort(m.iloc[:,0:2].values)
pd.concat((pd.DataFrame(f),m[['projects']]),axis=1).groupby([0,1])['projects'].sum()
Вывод, который я получил, был:
0 1
S2 S3 5
S4 2
S5 7
S4 S5 1
Это переименование столбца в 0 и 1, которое можно изменить с помощью set_axis. Главное, это то, как вы хотите? Что S2 и S5, независимо от порядка, дали свою сумму в качестве выхода?