Kriteria pemilihan yang rumit dengan berbilang syarat sering timbul dalam tugasan manipulasi data. Pandas menyediakan kaedah dan simpulan bahasa untuk mengendalikan senario ini dengan cekap.
Contoh:
Pertimbangkan DataFrame 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)]})
Masalah:
Pilih nilai daripada 'A' di mana nilai yang sepadan untuk 'B' adalah lebih besar daripada 50 dan 'C' tidak sama dengan 900.
Penyelesaian:
Kami boleh menggunakan operasi lajur untuk mendapatkan objek Siri boolean untuk setiap syarat:
df["B"] > 50 (df["B"] > 50) & (df["C"] != 900)
atau setara:
(df["B"] > 50) & ~(df["C"] == 900)
Siri boolean ini kemudiannya boleh digunakan untuk mengindeks ke dalam DataFrame:
df["A"][(df["B"] > 50) & (df["C"] != 900)]
atau, menggunakan .loc:
df.loc[(df["B"] > 50) & (df["C"] != 900), "A"]
Nota:
Untuk akses tulis, disyorkan untuk menggunakan .loc bukannya merantai indeks, kerana indeks yang terakhir boleh menghasilkan paparan dan bukannya salinan, yang membawa kepada potensi isu.
Atas ialah kandungan terperinci Bagaimana untuk Memilih Data dengan Cekap daripada Pandas DataFrame dengan Kriteria Kompleks Berbilang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!