Data opschonen in Python
Adel Nehme
VP of AI Curriculum, DataCamp

Minimaal aantal stappen om van de ene string naar de andere te gaan

Minimaal aantal stappen om van de ene string naar de andere te gaan


Huidige minimale bewerkingsafstand: 2

Minimale bewerkingsafstand: 5

| Algoritme | Bewerking(en) |
|---|---|
| Damerau-Levenshtein | invoeging, substitutie, verwijdering, transpositie |
| Levenshtein | invoeging, substitutie, verwijdering |
| Hamming | alleen substitutie |
| Jaro-afstand | alleen transpositie |
| ... | ... |
Mogelijke packages: nltk, thefuzz, textdistance ..
| Algoritme | Bewerking(en) |
|---|---|
| Damerau-Levenshtein | invoeging, substitutie, verwijdering, transpositie |
| Levenshtein | invoeging, substitutie, verwijdering |
| Hamming | alleen substitutie |
| Jaro-afstand | alleen transpositie |
| ... | ... |
Mogelijke packages: thefuzz
# Lets us compare between two strings from thefuzz import fuzz# Compare reeding vs reading fuzz.WRatio('Reeding', 'Reading')
86
# Gedeeltelijke stringvergelijking
fuzz.WRatio('Houston Rockets', 'Rockets')
90
# Gedeeltelijke stringvergelijking met andere volgorde
fuzz.WRatio('Houston Rockets vs Los Angeles Lakers', 'Lakers vs Rockets')
86
# Import process
from thefuzz import process
# Define string and array of possible matches
string = "Houston Rockets vs Los Angeles Lakers"
choices = pd.Series(['Rockets vs Lakers', 'Lakers vs Rockets',
'Houson vs Los Angeles', 'Heat vs Bulls'])
process.extract(string, choices, limit = 2)
[('Rockets vs Lakers', 86, 0), ('Lakers vs Rockets', 86, 1)]
Hoofdstuk 2
Gebruik .replace() om "eur" te vervangen door "Europe"
Wat als er te veel varianten zijn?
"EU", "eur", "Europ", "Europa", "Erope", "Evropa"...
Stringsimilariteit!
print(survey['state'].unique())
id state
0 California
1 Cali
2 Calefornia
3 Calefornie
4 Californie
5 Calfornia
6 Calefernia
7 New York
8 New York City
...
categories
state
0 California
1 New York
# Voor elke correcte categorie for state in categories['state']:# Zoek mogelijke matches in states met typfouten matches = process.extract(state, survey['state'], limit = survey.shape[0])# Voor elke mogelijke match for potential_match in matches: # Als de similariteit hoog is if potential_match[1] >= 80:# Vervang typefout door juiste categorie survey.loc[survey['state'] == potential_match[0], 'state'] = state

Data opschonen in Python