Предполагая, что все имена без запятых имеют первое имя, а имена с запятыми имеют фамилию первой, вы можете выполнить sh в два этапа:
Сначала вам нужно позаботиться о строках с запятыми - удалите запятую и измените порядок имен:
mask = df["Name"].str.contains(",") # These are the rows we want to change
df.loc[mask, "Name"] = df.loc[mask, "Name"].str.split(", ").apply(reversed).str.join(" ")
Затем вы можете использовать str.title для принудительного ввода регистра:
df["Name"] = df["Name"].str.title()