Selesai: panda menapis baris mengikut nilai kabur

Dalam dunia analisis data, adalah perkara biasa untuk menemui set data besar yang memerlukan manipulasi dan pemprosesan data. Salah satu masalah yang sering timbul ialah menapis baris berdasarkan nilai kabur, terutamanya apabila berurusan dengan data teks. Pandas, perpustakaan Python yang popular untuk manipulasi data, menyediakan penyelesaian yang elegan untuk membantu menangani isu ini. Dalam artikel ini, kita akan menyelami cara menggunakan Panda untuk menapis baris menggunakan nilai kabur, meneroka kod langkah demi langkah dan membincangkan pustaka dan fungsi berkaitan yang boleh membantu dalam menyelesaikan masalah yang serupa.

Untuk mula menangani masalah ini, kami akan memanfaatkan Pandas perpustakaan bersama-sama dengan fuzzywuzzy perpustakaan yang membantu mengira persamaan antara rentetan yang berbeza. The fuzzywuzzy perpustakaan menggunakan jarak Levenshtein, ukuran persamaan berdasarkan bilangan suntingan (sisipan, pemadaman atau penggantian) yang diperlukan untuk mengubah satu rentetan kepada rentetan yang lain.

Memasang dan Mengimport Perpustakaan yang Diperlukan

Untuk bermula, kami perlu memasang dan mengimport perpustakaan yang diperlukan. Anda boleh menggunakan pip untuk memasang kedua-dua Panda dan fuzzywuzzy:

pip install pandas
pip install fuzzywuzzy

Setelah dipasang, import perpustakaan dalam kod Python anda:

import pandas as pd
from fuzzywuzzy import fuzz, process

Menapis Baris Berdasarkan Nilai Kabur

Memandangkan kita telah mengimport pustaka yang diperlukan, mari buat set data fiksyen dan tunjukkan cara menapis baris berdasarkan nilai kabur. Dalam contoh ini, set data kami akan terdiri daripada nama pakaian dan gaya sepadannya.

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

Dengan mengandaikan kami ingin menapis baris yang mengandungi pakaian dengan nama yang serupa dengan "Baju Tee", kami perlu menggunakan perpustakaan fuzzywuzzy untuk mencapainya.

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)

Dalam kod di atas, kami mentakrifkan fungsi penapis_baris yang mengambil empat parameter: DataFrame, nama lajur, rentetan carian dan ambang persamaan. Ia mengembalikan DataFrame yang ditapis berdasarkan ambang yang ditentukan, yang dikira menggunakan fuzz.token_sort_ratio fungsi daripada perpustakaan fuzzywuzzy.

Memahami Kod Langkah demi Langkah

  • Pertama, kami mencipta DataFrame yang dipanggil df yang mengandungi set data kami.
  • Seterusnya, kami mentakrifkan rentetan carian kami sebagai "Baju Tee" dan menetapkan ambang persamaan 70. Anda boleh melaraskan nilai ambang mengikut tahap persamaan yang anda inginkan.
  • Kami kemudian mencipta fungsi yang dipanggil penapis_baris, yang menapis DataFrame berdasarkan jarak Levenshtein antara rentetan carian dan nilai setiap baris dalam lajur yang ditentukan.
  • Akhirnya, kami memanggil penapis_baris berfungsi untuk mendapatkan DataFrame kami yang ditapis, filtered_df.

Kesimpulannya, Pandas, dalam kombinasi dengan perpustakaan fuzzywuzzy, ialah alat yang sangat baik untuk menapis baris berdasarkan nilai kabur. Memahami perpustakaan ini dan fungsinya membolehkan kami memanipulasi data dengan cekap dan menyelesaikan tugas pemprosesan data yang kompleks.

Related posts:

Tinggalkan komen