Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengambil Baris Berdasarkan Nilai Lajur Berbeza dalam Panda?
Mengambil Baris Berdasarkan Nilai Lajur Yang Berbeza
Dalam senario manipulasi data, menjadi penting untuk mengekstrak baris berdasarkan nilai unik dalam lajur tertentu . Artikel ini akan menunjukkan cara untuk mencapai ini menggunakan Pandas, perpustakaan Python yang popular untuk manipulasi dan analisis data.
Pernyataan Masalah
Pertimbangkan bingkai data dengan dua lajur, COL1 dan COL2. Tugasnya adalah untuk mendapatkan semula baris yang nilai dalam COL2 adalah unik. Contohnya, memandangkan kerangka data di bawah:
COL1 | COL2 |
---|---|
a.com | 22 |
b.com | 45 |
c.com | 34 |
e.com | 45 |
f.com | 56 |
g.com | 22 |
h.com | 45 |
Output yang diingini adalah untuk mendapatkan baris berdasarkan nilai unik dalam COL2:
COL1 | COL2 |
---|---|
a.com | 22 |
b.com | 45 |
c.com | 34 |
f.com | 56 |
Penyelesaian: Menggunakan Panda' Kaedah drop_duplicates()
Pustaka Pandas menyediakan kaedah mudah dipanggil drop_duplicates() untuk menyelesaikan tugasan ini. Dengan menyatakan nama lajur dalam hujah, anda boleh menyemak pendua dan mengalih keluar atau menyimpan baris tertentu berdasarkan keperluan anda.
Sebagai contoh, untuk mengalih keluar semua baris pendua berdasarkan nilai COL2, gunakan kod berikut:
<code class="python">import pandas as pd df = pd.DataFrame({'COL1': ['a.com', 'b.com', 'c.com', 'e.com', 'f.com', 'g.com', 'h.com'], 'COL2': [22, 45, 34, 45, 56, 22, 45]}) df = df.drop_duplicates('COL2') # Displaying the result print(df)</code>
Ini akan mengeluarkan bingkai data dengan nilai unik dalam COL2:
COL1 | COL2 |
---|---|
a.com | 22 |
b.com | 45 |
c.com | 34 |
f.com | 56 |
Selain itu, anda boleh menentukan parameter keep untuk mengawal baris pendua yang hendak disimpan. Secara lalai, ia mengekalkan kejadian pertama ('first'), tetapi anda juga boleh menyimpan yang terakhir ('terakhir') atau mengalih keluar semua pendua ('False').
<code class="python"># Keep first occurrence df = df.drop_duplicates('COL2', keep='first') # Keep last occurrence df = df.drop_duplicates('COL2', keep='last') # Remove all duplicates df = df.drop_duplicates('COL2', keep=False)</code>
Atas ialah kandungan terperinci Bagaimana untuk Mengambil Baris Berdasarkan Nilai Lajur Berbeza dalam Panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!