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
Lepaskan: 2024-12-02 20:45:14
asal
562 orang telah melayarinya

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)]})
Salin selepas log masuk

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)
Salin selepas log masuk

atau setara:

(df["B"] > 50) & ~(df["C"] == 900)
Salin selepas log masuk

Siri boolean ini kemudiannya boleh digunakan untuk mengindeks ke dalam DataFrame:

df["A"][(df["B"] > 50) & (df["C"] != 900)]
Salin selepas log masuk

atau, menggunakan .loc:

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

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan