Rabada's star is born but too many passengers
Kagiso Rabada (22 wickets at 21.90)
The most successful bowler in the series was the also the youngest member across both squads but accepted responsibility as though he was born for the role. Rabada took three five-wicket hauls, including a match return of 13 for 144 to rack up the second-best figures by a South African after Makhaya Ntini. He won the Centurion game in little more than 90 minutes on the final morning and finished as the highest wicket-taker overall, despite sitting out the first game. As if that was not enough, he showed staying power with bat in hand too.
Hashim Amla (470 runs at 67.14)
It is unusual for a captain who abandons a sinking ship to be highly rated but Amla's mid-series stepping down was the best thing he could have done for himself and the team. Once he made the decision before the Newlands Test he freed up so much he scored a match-saving double hundred before announcing his decision. He topped that up with a century and a 96 at Centurion to lead the run charts overall and even seemed more animated in the field after removing the arm-band.
Stephen Cook (140 runs at 70.00)
After loud calls for a specialist opener, Cook was included off the back of two domestic centuries in two games for the final Test and immediately proved his backers right. He scored a century on debut and batted with the confidence of a man in form. He was assured at the crease and in the field and his experience solidified South Africa at the top. At 33, he could be South Africa's Chris Rogers.
Morne Morkel (15 wickets at 29.73)
In the absence of Dale Steyn and Vernon Philander, Morkel had to step up as the spearhead for this series and did so, albeit in a supporting role. Morkel was exceptional in creating pressure and allowing Rabada to reap rewards at the other end. His pace was consistently in the upper 140s, he used the bouncer well and he bowled aggressively with the new and old ball to provide both captains with a degree of certainty in an attack in transition.
Dean Elgar (284 runs at 47.33; 2 wickets at 56.00)
For the most of the series, Elgar held firm in a frayed top two which gave him a level of seniority he has not had before. His century in Durban, where he carried his bat, was the first by a South African batsman in six Tests since January 2015 but he did not continue in that vein. In three of his other innings he got starts without converting before he faded away in the next three. His off-field defence of team management will go some way to supporting his leadership credentials which could see him come into contention when the Test captaincy is discussed this winter.
Temba Bavuma (248 runs at 49.60)
The home side had their first feel-good moment of the series when Bavuma became the first black South African batsman to score a century. That he did in a must-save game, in front of his home crowd at Newlands only made it more special. Bavuma's breakthrough innings was a win for transformation and a sign that South Africa's middle-order does not have to rely on misfiring older players. He has the right mix of caution and quick run-scoring, which was on display again in Centurion and is a sharp fielder at short leg.
Quinton de Kock (143 runs at 143.00; 11 catches)
From being left out of the squad initially to scoring an important maiden Test century in the final match, this was the series in which de Kock grew up. His run-a-ball hundred in Centurion pushed South Africa to a match-winning first innings total and showed his ability to marshal the tail and lengthen the line-up. He still has some work to do behind the stumps but took several sensational catches as well.
Dane Piedt (10 wickets at 45.50)
His returns do not suggest that he had a very good series but Piedt has probably done enough to nail down the specialist spinner spot ahead of Simon Harmer. He has all the variations and uses them with confidence but needs to work on his control. He was stubborn with the bat and enthusiastic in the field which makes him a good all-round package.
AB de Villiers (210 runs at 30.00)
He started the series as the wicketkeeper and ended it as the captain which serves to illustrate how topsy-turvy this time has been for de Villiers and how wide the implication was for his team. They heard rumours of him considering early retirement in Durban, which he played down by asking for a lighter workload. In Cape Town, he was relieved of the gloves but at the end of the game asked to stand in as skipper for the next two Tests. In his first pre-match press conference as leader, de Villiers once again spoke about a packed schedule which was far from the inspiration South Africa needed. Runs left him by the end of the series and he racked up three ducks in a row but some certainty had returned. He hinted at long-term captaincy ambitions towards the end. Whether he has the tactical acumen to make it remains to be seen.
Dale Steyn (4 wickets at 20.00)
Steyn seemed to be back with a searing performance in the first innings in Durban when he had England 12 for 2. He was bowling quickly, aggressively and with all the same intent he has always had but it was shortlived. He left the field in the second with a shoulder problem and did not make an appearance in any of the other Tests.
Chris Morris (98 runs at 32.66; 4 wickets at 63.25)
Touted as the solution to the all-round problem, Morris proved more of a bowler who bats than a genuine No.8. He scored an important half-century in Cape Town but barely delivered with the ball. Given some time, he may yet develop into the type of player South Africa want in their Test set-up.
Dane Vilas (34 runs at 17.00; 5 catches)
Vilas' international career was resurrected when he was called in as an emergency replacement for de Kock for the Wanderers Test but it was doused just as swiftly. Despite an impressive showing behind the stumps, Vilas did not produce with the bat and with de Kock's century in Centurion, he is unlikely to be able to force his way back in.
Faf du Plessis (127 runs at 25.40)
As one of South Africa's senior-most batsmen, du Plessis was expected to make up for the lean patch in India by leading the way at home. However, he struggled to get out of the rut and tried to compensate for that by occupying the crease but it dug him into a deeper rut. Du Plessis' defensive tactics seem to have stalled his game and he was dropped for the Centurion Test.
Stiaan van Zyl (69 runs at 13.80; 3 wickets at 23.00)
After a lean tour of India, van Zyl was given a chance to see if he could open at home but he did not take it. The scars from the subcontinent had not healed, he still seemed unsure of where his off stump was and on the occasion when he found it, he ran himself out. Van Zyl showed glimpses of the domestic form that got him picked for South Africa but his self-belief has taken a knock and he was dropped for the final Test.
JP Duminy (73 runs at 24.33; 1 wicket at 28.00)
Like du Plessis, Duminy needed to take on the responsibility of scoring runs but did not. He was dropped after Durban, went back to Cobras and scored a career-best unbeaten 260 and then recalled for the final Test where he failed again. Duminy's issue seems to be that he does not understand his role in the line-up or with the ball. His offspin was barely called on and, with other players performing well in the middle-order, he is becoming surplus to requirements.
Hardus Viljoen (1 wicket at 94.00)
A wicket with his first ball in Test cricket to remove the England captain, after a four off the first ball he faced from the England spearhead James Anderson, gave him a little place in cricket history but it was a false dawn. Viljoen could not find the balance between raw pace and control and the rest of his Wanderers performance fizzled out. He was an unlucky to play in an attack with three other bowlers who all did the same thing and may benefit from more varied team-mates if he gets another chance.
Kyle Abbott (2 wickets at 87.00)
The ghosts of the 2015 World Cup are still haunting Abbott, who has not been the same bowler since he was left out of the semi-final XI. He took his only wickets of the series in Durban and struggled with a hamstring niggle for the rest of the series. He recovered in time to play in Centurion, where he kept it tight, but was not penetrative enough, and was then re-injured so he could only play a limited part in the game.
Firdose Moonda is ESPNcricinfo's South Africa correspondent