Use:
#Calculate Total
df['Total'] = df.filter(regex='P').sum(axis=1)
#Create Notes
df['Notes'] = df.filter(regex='P').astype(str)
.apply(lambda row: ','.join(row.index + ';' + row), axis=1)
print(df)
ID P1 P2 P3 Total Notes
0 a 10 90 14 114 P1;10,P2;90,P3;14
1 b 28 54 15 97 P1;28,P2;54,P3;15
2 c 34 54 24 112 P1;34,P2;54,P3;24
3 d 56 32 90 178 P1;56,P2;32,P3;90
4 e 78 16 34 128 P1;78,P2;16,P3;34
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…