Python ile Veri Temizleme
Adel Nehme
VP of AI Curriculum, DataCamp

Bir dizgeden diğerine geçmek için gereken en az adım sayısı

Bir dizgeden diğerine geçmek için gereken en az adım sayısı


Şu ana kadarki asgari düzenleme uzaklığı: 2

Asgari düzenleme uzaklığı: 5

| Algoritma | İşlemler |
|---|---|
| Damerau-Levenshtein | ekleme, yerine koyma, silme, yer değiştirme |
| Levenshtein | ekleme, yerine koyma, silme |
| Hamming | yalnızca yerine koyma |
| Jaro mesafesi | yalnızca yer değiştirme |
| ... | ... |
Olası paketler: nltk, thefuzz, textdistance ..
| Algoritma | İşlemler |
|---|---|
| Damerau-Levenshtein | ekleme, yerine koyma, silme, yer değiştirme |
| Levenshtein | ekleme, yerine koyma, silme |
| Hamming | yalnızca yerine koyma |
| Jaro mesafesi | yalnızca yer değiştirme |
| ... | ... |
Olası paketler: thefuzz
# İki dizgeyi karşılaştırmamızı sağlar from thefuzz import fuzz# reeding ve reading'i karşılaştırın fuzz.WRatio('Reeding', 'Reading')
86
# Kısmi dizge karşılaştırması
fuzz.WRatio('Houston Rockets', 'Rockets')
90
# Farklı sıralamayla kısmi karşılaştırma
fuzz.WRatio('Houston Rockets vs Los Angeles Lakers', 'Lakers vs Rockets')
86
# process'i içe aktarın
from thefuzz import process
# Dize ve olası eşleşmeler dizisini tanımlayın
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)]
Bölüm 2
"eur" değerini "Europe" ile birleştirmek için .replace() kullanın
Çok fazla varyasyon varsa ne olur?
"EU", "eur", "Europ", "Europa", "Erope", "Evropa"...
Dizge benzerliği!
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
# Her doğru kategori için for state in categories['state']:# Yazım hatası olan eyaletlerde olası eşleşmeleri bulun matches = process.extract(state, survey['state'], limit = survey.shape[0])# Her olası eşleşme için for potential_match in matches: # Benzerlik skoru yüksekse if potential_match[1] >= 80:# Yazım hatasını doğru kategoriyle değiştirin survey.loc[survey['state'] == potential_match[0], 'state'] = state

Python ile Veri Temizleme