Data cleaning challenge

I have a dataset with a column Highest Level Of Education.
The df.value_counts produces the results below.
Bachelors Degree 639
Diploma 291
O - Level 264
Masters Degree 149
Certificate 126
A - Level 69
PGD 40
Bachelors Degree 28
A-Level 20
O-Level 15
Masters 10
Bachelors 6
diploma 5
certificate 5
Ph.D 4
A- Level 2
Msc Environment 1
O- Level 1
PhD 1
Masters 1
Post Graduate Diploma 1
The data is from excel and you can see that levels are repeated with variations in spellings and naming.
How can use to replace the values.
Here is my dictionary:
mapp={“Bachelor’s Degree”:[“Bachelors Degree”,“Bachelors”,“BBA”,“Bachelors Degree”],
“Ordinary Diploma”:[“diploma”],
“Ordinary Level”:[“O - Level”,“O-Level”,“O- Level”],
“Master’s Degree”:[“Masters Degree”,“Masters”,“Msc Environment”,“Masters”],
“Advanced Level”:[“A - Level”,“A-Level”,“A- Level”],
“Post Graduate Diploma”:[“Post Graduate Diploma”,“PGD”],

using f[‘EDUCATION_LEVEL’]=df[‘EDUCATION_LEVEL’].map(mapp) does not work(i get Nan values).
Can i use in this case?
I cant upload the file since i am a new user.

A workaround can be set mapp dictionary with all declinations, like this:
mapp = {
“Bachelors Degree”:“Bachelor’s Degree”,
“Bachelors”:“Bachelor’s Degree”,
“BBA”:“Bachelor’s Degree”,
“Bachelors Degree”:“Bachelor’s Degree”,
“diploma”:“Ordinary Diploma”,
“Diploma”:“Ordinary Diploma”,
“O - Level”:“Ordinary Level”,
“O-Level”:“Ordinary Level”,
“O- Level”:“Ordinary Level”,
“Masters Degree”:“Master’s Degree”,
“Masters”:“Master’s Degree”,
“Msc Environment”:“Master’s Degree”,
“Masters”:“Master’s Degree”,
“A - Level”:“Advanced Level”,
“A-Level”:“Advanced Level”,
“A- Level”:“Advanced Level”,
“Post Graduate Diploma”:“Post Graduate Diploma”,
“PGD”:“Post Graduate Diploma”,

But my advice is clean in advance the “highest level of education”, to uniform the data