Fast bowler Kagiso Rabada will not play for the Proteas in the first Test against India starting in Kolkata on Friday morning.
Rabada picked up a rib injury during training in the build-up to the match, and he was replaced by all-rounder Wiaan Mulder in the starting XI.
South Africa made two other changes to the national team that beat Pakistan in their last Test in Rawalpindi last month.
Regular captain Temba Bavuma, who won the toss and chose to bat, returned to the team as a replacement for Dewald Brevis after recovering from a calf strain.
In the other change to the side, spin bowler Senuran Muthusamy was replaced by seamer Corbin Bosch.
India, meanwhile, made two changes to the side that beat West Indiea in Delhi last month.
All-rounder Rishabh Pant and wicketkeeper/batter Axar Patel were recalled, replacing Sai Sudharsan and Nitish Kumar Redyy.
South AfricaAiden Markram (c)
Ryan Rickelton
Wiaan Mulder
Temba Bavuma
Tony de Zorzi
Tristan Stubbs
Kyle Verreynne
Corbin Bosch
Marco Jansen
Simon Harmer
Keshav Maharaj
India
KL Rahul
Yashasvi Jaiswal
Washington Sundar
Shubman Gill (c)
Rishabh Pant
Ravindra Jadeja
Dhruv Jurel
Axar Patel
Kuldeep Yadav
Jasprit Bumrah
Mohammed Siraj