Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Memilih Nilai DataFrame Berdasarkan Pelbagai Kriteria dalam Panda?

Bagaimana untuk Memilih Nilai DataFrame Berdasarkan Pelbagai Kriteria dalam Panda?

Patricia Arquette
Patricia Arquetteasal
2024-12-05 13:09:10889semak imbas

How to Select DataFrame Values Based on Multiple Criteria in Pandas?

Memilih dengan kriteria kompleks daripada panda.DataFrame

Memilih nilai tertentu daripada DataFrame berdasarkan pelbagai kriteria

Anggap kita mempunyai DataFrame yang mudah seperti yang berikut:

import pandas as pd
from random import randint

df = pd.DataFrame({'A': [randint(1, 9) for x in range(10)],
                   'B': [randint(1, 9)*10 for x in range(10)],
                   'C': [randint(1, 9)*100 for x in range(10)]})

Matlamat kami adalah untuk memilih nilai daripada lajur 'A' yang memenuhi kriteria khusus untuk nilai yang sepadan dalam lajur 'B' dan 'C'.

Pendekatan menggunakan pengindeksan Boolean

Untuk mencapai ini, kita boleh menggunakan pengindeksan Boolean. Mula-mula, kami mencipta objek Siri Boolean untuk setiap kriteria:

df["B"] > 50
(df["B"] > 50) & (df["C"] != 900)

Siri Boolean ini mewakili baris yang memenuhi kriteria masing-masing. Kami kemudiannya boleh menggunakan Siri ini sebagai indeks untuk memilih nilai yang dikehendaki:

df["A"][df["B"] > 50]
df["A"][(df["B"] > 50) & (df["C"] != 900)]

Pendekatan menggunakan .loc

Kami juga boleh menggunakan atribut .loc untuk pengindeksan yang lebih cekap. .loc membolehkan kami menentukan baris dan lajur untuk mendapatkan semula menggunakan satu pernyataan:

df.loc[(df["B"] > 50) & (df["C"] != 900), "A"]

Kesimpulan

Kedua-dua kaedah memilih nilai secara berkesan daripada DataFrame berdasarkan kriteria yang kompleks. Pilihan antara menggunakan pengindeksan Boolean atau .loc bergantung pada keutamaan peribadi dan kebolehbacaan kod.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Nilai DataFrame Berdasarkan Pelbagai Kriteria dalam Panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn