Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Memilih Data dengan Cekap daripada Pandas DataFrame dengan Kriteria Kompleks Berbilang?

Bagaimana untuk Memilih Data dengan Cekap daripada Pandas DataFrame dengan Kriteria Kompleks Berbilang?

DDD
DDDasal
2024-12-02 20:45:14613semak imbas

How to Efficiently Select Data from a Pandas DataFrame with Multiple Complex Criteria?

Memilih dengan Kriteria Kompleks daripada Pandas.DataFrame

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!

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