Làm sạch dữ liệu với Python
Adel Nehme
VP of AI Curriculum, DataCamp

Số bước ít nhất để đổi một chuỗi thành chuỗi khác

Số bước ít nhất để đổi một chuỗi thành chuỗi khác


Khoảng cách chỉnh sửa tối thiểu hiện tại: 2

Khoảng cách chỉnh sửa tối thiểu: 5

| Thuật toán | Phép toán |
|---|---|
| Damerau-Levenshtein | chèn, thay thế, xóa, hoán vị |
| Levenshtein | chèn, thay thế, xóa |
| Hamming | chỉ thay thế |
| Khoảng cách Jaro | chỉ hoán vị |
| ... | ... |
Gói có thể dùng: nltk, thefuzz, textdistance ..
| Thuật toán | Phép toán |
|---|---|
| Damerau-Levenshtein | chèn, thay thế, xóa, hoán vị |
| Levenshtein | chèn, thay thế, xóa |
| Hamming | chỉ thay thế |
| Khoảng cách Jaro | chỉ hoán vị |
| ... | ... |
Gói có thể dùng: thefuzz
# Cho phép so sánh hai chuỗi from thefuzz import fuzz# So sánh reeding vs reading fuzz.WRatio('Reeding', 'Reading')
86
# So sánh chuỗi một phần
fuzz.WRatio('Houston Rockets', 'Rockets')
90
# So sánh một phần với trật tự khác
fuzz.WRatio('Houston Rockets vs Los Angeles Lakers', 'Lakers vs Rockets')
86
# Import process
from thefuzz import process
# Chuỗi và danh sách ứng viên khớp
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)]
Chương 2
Dùng .replace() để gộp "eur" thành "Europe"
Nếu có quá nhiều biến thể thì sao?
"EU", "eur", "Europ", "Europa", "Erope", "Evropa"...
Độ tương đồng chuỗ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
# Với mỗi danh mục đúng for state in categories['state']:# Tìm khớp tiềm năng trong các trạng thái có lỗi chính tả matches = process.extract(state, survey['state'], limit = survey.shape[0])# Với mỗi khớp tiềm năng for potential_match in matches: # Nếu điểm tương đồng cao if potential_match[1] >= 80:# Thay lỗi bằng danh mục đúng survey.loc[survey['state'] == potential_match[0], 'state'] = state

Làm sạch dữ liệu với Python