Zgjidhur: pandat filtrojnë rreshtat sipas vlerave të paqarta

Në botën e analizës së të dhënave, është e zakonshme të hasësh grupe të mëdha të dhënash që kërkojnë manipulim dhe përpunim të të dhënave. Një problem i tillë që lind shpesh është filtrimi i rreshtave bazuar në vlerat e paqarta, veçanërisht kur kemi të bëjmë me të dhëna tekstuale. Pandas, një bibliotekë e njohur Python për manipulimin e të dhënave, ofron një zgjidhje elegante për të ndihmuar në trajtimin e këtij problemi. Në këtë artikull, ne do të shqyrtojmë se si të përdorim Pandat për të filtruar rreshtat duke përdorur vlera të paqarta, do të eksplorojmë kodin hap pas hapi dhe do të diskutojmë bibliotekat dhe funksionet përkatëse që mund të ndihmojnë në zgjidhjen e problemeve të ngjashme.

Për të filluar trajtimin e këtij problemi, ne do të shfrytëzojmë Pandas biblioteka së bashku me fuzzywuzzy bibliotekë e cila ndihmon në llogaritjen e ngjashmërisë midis vargjeve të ndryshme. Të fuzzywuzzy Biblioteka përdor distancën Levenshtein, një masë ngjashmërie bazuar në numrin e redaktimeve (futje, fshirje ose zëvendësime) të nevojshme për të transformuar një varg në një tjetër.

Instalimi dhe importimi i bibliotekave të nevojshme

Për të filluar, do të na duhet të instalojmë dhe importojmë bibliotekat e nevojshme. Ju mund të përdorni pip për të instaluar Panda dhe fuzzywuzzy:

pip install pandas
pip install fuzzywuzzy

Pasi të instalohet, importoni bibliotekat në kodin tuaj Python:

import pandas as pd
from fuzzywuzzy import fuzz, process

Filtrimi i rreshtave bazuar në vlerat e paqarta

Tani që kemi importuar bibliotekat e kërkuara, le të krijojmë një grup të dhënash imagjinare dhe të tregojmë se si të filtrojmë rreshtat bazuar në vlerat e paqarta. Në këtë shembull, grupi ynë i të dhënave do të përbëhet nga emrat e veshjeve dhe stilet e tyre përkatëse.

data = {'Garment': ['T-shirt', 'Polo shirt', 'Jeans', 'Leather jacket', 'Winter coat'],
        'Style': ['Casual', 'Casual', 'Casual', 'Biker', 'Winter']}
df = pd.DataFrame(data)

Duke supozuar se duam të filtrojmë rreshtat që përmbajnë veshje me emra të ngjashëm me "këmisha e tee", do të na duhet të përdorim bibliotekën fuzzywuzzy për ta arritur këtë.

search_string = "Tee shirt"
threshold = 70

def filter_rows(df, column, search_string, threshold):
    return df[df[column].apply(lambda x: fuzz.token_sort_ratio(x, search_string)) >= threshold]

filtered_df = filter_rows(df, 'Garment', search_string, threshold)

Në kodin e mësipërm, ne përcaktojmë një funksion rreshtat_filtër që merr katër parametra: DataFrame, emri i kolonës, vargu i kërkimit dhe pragu i ngjashmërisë. Ai kthen një DataFrame të filtruar bazuar në pragun e specifikuar, i cili llogaritet duke përdorur fuzz.raporti_sort_token funksion nga biblioteka fuzzywuzzy.

Kuptimi i kodit hap pas hapi

  • Së pari, ne krijojmë një DataFrame të quajtur df që përmban grupin tonë të të dhënave.
  • Më pas, ne e përcaktojmë vargun tonë të kërkimit si "këmishë këmishë" dhe vendosim një prag ngjashmërie prej 70. Ju mund ta rregulloni vlerën e pragut sipas nivelit të dëshiruar të ngjashmërisë.
  • Më pas krijojmë një funksion të quajtur rreshtat_filtër, i cili filtron DataFrame bazuar në distancën Levenshtein midis vargut të kërkimit dhe vlerës së çdo rreshti në kolonën e specifikuar.
  • Së fundi, ne e quajmë rreshtat_filtër funksion për të marrë DataFrame tonë të filtruar, filtruar_df.

Si përfundim, Pandas, në kombinim me bibliotekën fuzzywuzzy, është një mjet i shkëlqyer për filtrimin e rreshtave bazuar në vlerat fuzzy. Të kuptuarit e këtyre bibliotekave dhe funksioneve të tyre na lejon të manipulojmë në mënyrë efikase të dhënat dhe të zgjidhim detyra komplekse të përpunimit të të dhënave.

Mesazhe të ngjashme:

Lini një koment