Rešeno: pande filtrirajo vrstice po mehkih vrednostih

V svetu analize podatkov je običajno naleteti na velike nize podatkov, ki zahtevajo manipulacijo in obdelavo podatkov. Ena taka težava, ki se pogosto pojavi, je filtriranje vrstic na podlagi mehkih vrednosti, zlasti pri delu z besedilnimi podatki. Pandas, priljubljena knjižnica Python za obdelavo podatkov, ponuja elegantno rešitev za pomoč pri reševanju te težave. V tem članku se bomo poglobili v to, kako uporabljati Pande za filtriranje vrstic z mehkimi vrednostmi, raziskali kodo korak za korakom in razpravljali o ustreznih knjižnicah in funkcijah, ki lahko pomagajo pri reševanju podobnih težav.

Za začetek reševanja te težave bomo izkoristili pand knjižnica skupaj z fuzzywuzzy knjižnica, ki pomaga izračunati podobnost med različnimi nizi. The fuzzywuzzy knjižnica uporablja Levenshteinovo razdaljo, merilo podobnosti, ki temelji na številu urejanj (vstavkov, izbrisov ali zamenjav), potrebnih za pretvorbo enega niza v drugega.

Namestitev in uvoz zahtevanih knjižnic

Za začetek bomo morali namestiti in uvoziti potrebne knjižnice. Uporabite lahko pip za namestitev Pand in fuzzywuzzy:

pip install pandas
pip install fuzzywuzzy

Ko je nameščen, uvozite knjižnice v svojo kodo Python:

import pandas as pd
from fuzzywuzzy import fuzz, process

Filtriranje vrstic na podlagi mehkih vrednosti

Zdaj, ko smo uvozili zahtevane knjižnice, ustvarimo izmišljeni nabor podatkov in predstavimo, kako filtrirati vrstice na podlagi mehkih vrednosti. V tem primeru bo naš nabor podatkov sestavljen iz imen oblačil in njihovih ustreznih stilov.

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

Ob predpostavki, da želimo filtrirati vrstice, ki vsebujejo oblačila z imeni, podobnimi »Majica s kratkimi rokavi«, bomo morali za dosego tega uporabiti knjižnico fuzzywuzzy.

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)

V zgornji kodi definiramo funkcijo filter_vrstic ki ima štiri parametre: DataFrame, ime stolpca, iskalni niz in prag podobnosti. Vrne filtriran DataFrame na podlagi podanega praga, ki se izračuna z uporabo fuzz.token_sort_ratio funkcijo iz knjižnice fuzzywuzzy.

Razumevanje kode po korakih

  • Najprej ustvarimo imenovan DataFrame df ki vsebuje naš nabor podatkov.
  • Nato določimo naš iskalni niz kot »Majica s kratkimi rokavi« in nastavimo prag podobnosti 70. Vrednost praga lahko prilagodite glede na želeno raven podobnosti.
  • Nato ustvarimo funkcijo, imenovano filter_vrstic, ki filtrira DataFrame na podlagi Levenshteinove razdalje med iskalnim nizom in vrednostjo vsake vrstice v določenem stolpcu.
  • Končno pokličemo filter_vrstic funkcijo za pridobitev našega filtriranega DataFrame, filtered_df.

Za zaključek je Pandas v kombinaciji s knjižnico fuzzywuzzy odlično orodje za filtriranje vrstic na podlagi mehkih vrednosti. Razumevanje teh knjižnic in njihovih funkcij nam omogoča učinkovito manipuliranje s podatki in reševanje kompleksnih nalog obdelave podatkov.

Podobni objav:

Pustite komentar