Memilih Baris DataFrame Berdasarkan Nilai Lajur dalam Python

Memilih Baris DataFrame Berdasarkan Nilai Lajur dalam Python
Python

Menggunakan Panda untuk Menapis DataFrames mengikut Nilai Lajur

Apabila bekerja dengan data dalam Python, pustaka Pandas menawarkan alat yang berkuasa untuk manipulasi dan analisis data. Satu tugas biasa ialah memilih baris daripada DataFrame berdasarkan nilai dalam lajur tertentu. Operasi ini serupa dengan pertanyaan SQL: SELECT * FROM table WHERE column_name = some_value.

Dalam artikel ini, kami akan meneroka cara untuk mencapai ini dalam Panda menggunakan pelbagai kaedah. Sama ada anda menapis mengikut satu nilai atau berbilang kriteria, Pandas menyediakan cara yang intuitif dan cekap untuk mengendalikan operasi sedemikian. Mari selami butirannya.

Perintah Penerangan
pd.DataFrame() Mencipta objek DataFrame daripada kamus atau struktur data lain.
df[condition] Menapis baris DataFrame berdasarkan syarat, hanya mengembalikan baris yang memenuhi kriteria.
print() Mengeluarkan mesej atau DataFrame yang ditentukan kepada konsol.
df['column'] == value Mencipta Siri boolean yang digunakan untuk menapis baris yang lajur sepadan dengan nilai yang ditentukan.
df['column'] >df['column'] > value Mencipta Siri boolean yang digunakan untuk menapis baris yang nilai lajurnya lebih besar daripada nilai yang ditentukan.
# Comment Digunakan untuk menambah penjelasan atau nota dalam kod, yang tidak dilaksanakan sebagai sebahagian daripada skrip.

Melaksanakan Pemilihan Baris DataFrame dalam Pandas

Dalam skrip yang disediakan, tugas utama ialah menapis baris daripada DataFrame berdasarkan nilai lajur tertentu, keperluan biasa dalam analisis data. Skrip pertama bermula dengan mengimport pustaka Pandas dengan import pandas as pd. Ini penting kerana Pandas ialah perpustakaan manipulasi data yang berkuasa dalam Python. Seterusnya, kami mencipta sampel DataFrame menggunakan pd.DataFrame() dengan kamus yang mengandungi data untuk nama, umur dan bandar. Struktur ini membolehkan kami memvisualisasikan dan memanipulasi data jadual dengan mudah. Bahagian penting skrip ialah tempat kami menapis baris menggunakan df[df['city'] == 'New York']. Perintah ini memilih semua baris dengan nilai lajur bandar ialah 'New York'. Hasilnya disimpan dalam pembolehubah ny_rows, yang kemudiannya dicetak untuk memaparkan DataFrame yang ditapis.

Skrip kedua mengikut struktur yang serupa tetapi memfokuskan pada menapis baris berdasarkan keadaan berangka. Selepas mengimport Panda dan mencipta DataFrame dengan lajur produk, harga dan kuantiti, skrip menggunakan df[df['price'] > 150] untuk menapis baris yang harganya lebih besar daripada 150. Perintah ini menghasilkan subset DataFrame asal yang mengandungi hanya baris yang memenuhi syarat yang ditentukan. Hasilnya disimpan dalam expensive_products dan dicetak untuk pengesahan. Kedua-dua skrip menunjukkan kuasa dan kesederhanaan Panda untuk manipulasi data. Dengan menggunakan pengindeksan boolean, kaedah di mana kami menghantar satu siri nilai benar/salah untuk menapis data, kami boleh memilih subset data dengan cekap berdasarkan pelbagai keadaan, menjadikannya alat yang tidak ternilai untuk penganalisis dan saintis data.

Menapis Baris dalam DataFrame Berdasarkan Nilai Lajur

Python - Menggunakan Panda untuk Operasi DataFrame

import pandas as pd
# Create a sample DataFrame
data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Edward'],
    'age': [24, 27, 22, 32, 29],
    'city': ['New York', 'Los Angeles', 'New York', 'Chicago', 'Los Angeles']
}
df = pd.DataFrame(data)

# Select rows where city is New York
ny_rows = df[df['city'] == 'New York']
print(ny_rows)

# Output:
#       name  age      city
# 0    Alice   24  New York
# 2  Charlie   22  New York

Menyoal Baris DataFrame Berdasarkan Nilai Lajur

Python - Penapisan Lanjutan dengan Panda

import pandas as pd

# Create a sample DataFrame
data = {
    'product': ['A', 'B', 'C', 'D'],
    'price': [100, 150, 200, 250],
    'quantity': [30, 50, 20, 40]
}
df = pd.DataFrame(data)

# Select rows where price is greater than 150
expensive_products = df[df['price'] > 150]
print(expensive_products)

# Output:
#   product  price  quantity
# 2       C    200        20
# 3       D    250        40

Teknik Lanjutan untuk Memilih Baris DataFrame

Selain penapisan asas dengan pengindeksan boolean, Pandas menawarkan teknik yang lebih maju untuk memilih baris berdasarkan nilai lajur. Salah satu kaedah tersebut ialah query() fungsi, yang membolehkan anda menggunakan sintaks seperti SQL untuk menapis baris DataFrame. Sebagai contoh, anda boleh menggunakan df.query('age > 25 and city == "New York"') untuk memilih baris yang umurnya melebihi 25 tahun dan bandarnya ialah New York. Kaedah ini boleh menjadikan kod anda lebih mudah dibaca, terutamanya untuk keadaan yang rumit. Selain itu, Pandas menyediakan loc[] dan iloc[] aksesori untuk pemilihan baris yang lebih tepat. The loc[] accessor adalah berasaskan label, bermakna anda boleh menapis baris mengikut labelnya atau tatasusunan boolean. Sebaliknya, yang iloc[] accessor adalah berasaskan kedudukan integer, membolehkan anda menapis baris mengikut kedudukan indeksnya.

Satu lagi ciri berkuasa dalam Pandas ialah keupayaan untuk menapis baris DataFrame menggunakan isin() kaedah. Kaedah ini berguna apabila anda perlu menapis baris berdasarkan senarai nilai. Sebagai contoh, df[df['city'].isin(['New York', 'Los Angeles'])] memilih baris dengan nilai lajur bandar sama ada New York atau Los Angeles. Tambahan pula, anda boleh merantai beberapa syarat menggunakan & dan | pengendali untuk mencipta penapis yang lebih kompleks. Sebagai contoh, df[(df['age'] > 25) & (df['city'] == 'New York')] menapis baris yang umurnya melebihi 25 tahun dan bandarnya ialah New York. Teknik lanjutan ini menyediakan rangka kerja yang teguh untuk penapisan data, menjadikan Pandas alat serba boleh untuk analisis dan manipulasi data.

Soalan Lazim Mengenai Memilih Baris DataFrame dalam Panda

  1. Bagaimanakah cara saya menapis baris dalam DataFrame berdasarkan berbilang nilai lajur?
  2. Anda boleh menggunakan pengindeksan boolean dengan berbilang syarat digabungkan menggunakan & dan |. Sebagai contoh: df[(df['age'] > 25) & (df['city'] == 'New York')].
  3. Apakah perbezaan antara loc[] dan iloc[]?
  4. loc[] adalah berasaskan label, manakala iloc[] adalah berasaskan kedudukan integer. guna loc[] untuk penapisan mengikut label dan iloc[] untuk penapisan mengikut kedudukan indeks.
  5. Bagaimana saya boleh menggunakan query() fungsi untuk menapis baris DataFrame?
  6. The query() fungsi membolehkan anda menggunakan sintaks seperti SQL. Sebagai contoh: df.query('age > 25 and city == "New York"').
  7. Bolehkah saya menapis baris berdasarkan senarai nilai?
  8. Ya, anda boleh menggunakan isin() kaedah. Sebagai contoh: df[df['city'].isin(['New York', 'Los Angeles'])].
  9. Apakah cara terbaik untuk menapis baris berdasarkan padanan rentetan?
  10. Anda boleh menggunakan str.contains() kaedah. Sebagai contoh: df[df['city'].str.contains('New')].
  11. Bagaimanakah cara saya memilih baris yang tiada nilai lajur?
  12. Anda boleh menggunakan isna() kaedah. Sebagai contoh: df[df['age'].isna()].
  13. Bagaimanakah saya boleh menapis baris menggunakan fungsi tersuai?
  14. Anda boleh menggunakan apply() kaedah dengan fungsi lambda. Sebagai contoh: df[df.apply(lambda row: row['age'] > 25, axis=1)].
  15. Bolehkah saya menapis baris berdasarkan nilai indeks?
  16. Ya, anda boleh menggunakan index.isin() kaedah. Sebagai contoh: df[df.index.isin([1, 3, 5])].

Ambilan Utama untuk Pemilihan Baris DataFrame

Memilih baris daripada DataFrame berdasarkan nilai lajur ialah kemahiran asas dalam analisis data dengan Panda. Menggunakan pengindeksan boolean, loc[], iloc[], query(), dan isin() kaedah membolehkan penapisan data yang cekap. Menguasai teknik ini meningkatkan keupayaan anda untuk memanipulasi dan menganalisis set data dengan berkesan.