Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Memilih Baris dengan Cekap dalam Bingkai Data Pandas Berdasarkan Nilai Lajur?

Bagaimanakah Saya Boleh Memilih Baris dengan Cekap dalam Bingkai Data Pandas Berdasarkan Nilai Lajur?

Patricia Arquette
Lepaskan: 2024-12-25 16:02:15
asal
683 orang telah melayarinya

How Can I Efficiently Select Rows in a Pandas DataFrame Based on Column Values?

Memilih Baris Berdasarkan Nilai Lajur dalam Panda

Seperti mana-mana pangkalan data hubungan, anda mungkin perlu memilih baris tertentu daripada DataFrame berdasarkan nilai dalam lajur tertentu. Untuk mencapai ini dengan lancar dalam Pandas, terdapat beberapa kaedah yang boleh anda gunakan.

Menapis dengan == dan isin

Untuk mendapatkan semula baris yang nilai lajurnya sepadan dengan nilai tertentu, manfaatkan operator ==:

df.loc[df['column_name'] == some_value]
Salin selepas log masuk

Sebaliknya, jika anda ingin memilih baris yang nilai lajur tergolong dalam koleksi nilai, gunakan isin:

df.loc[df['column_name'].isin(some_values)]
Salin selepas log masuk

Menggabungkan Syarat dengan &

Untuk menggabungkan berbilang syarat dalam pilihan anda, sambungkannya dengan &:

df.loc[(df['column_name'] >= A) & (df['column_name'] <= B)]
Salin selepas log masuk

Nota: Tanda kurung adalah penting di sini untuk memastikan penilaian yang betul.

Tidak Termasuk Nilai dengan != dan ~

Untuk mengecualikan baris dengan nilai lajur tertentu, gunakan !=:

df.loc[df['column_name'] != some_value]
Salin selepas log masuk

Sebagai alternatif, untuk nilai di luar julat tertentu, tolakkan hasil isin menggunakan ~:

df = df.loc[~df['column_name'].isin(some_values)] # .loc is not in-place replacement
Salin selepas log masuk

Contoh Aplikasi

Pertimbangkan perkara berikut DataFrame:

import pandas as pd
import numpy as np
df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),
                   'B': 'one one two three two two one three'.split(),
                   'C': np.arange(8), 'D': np.arange(8) * 2})
print(df)
Salin selepas log masuk

Memilih baris dengan nilai 'A' 'foo':

print(df.loc[df['A'] == 'foo'])
Salin selepas log masuk

Memilih baris dengan nilai 'B' 'satu' atau 'tiga':

print(df.loc[df['B'].isin(['one','three'])])
Salin selepas log masuk

Prestasi Dipertingkat dengan Pengindeksan

Untuk penapisan yang kerap operasi, adalah lebih cekap untuk mencipta indeks dahulu:

df = df.set_index(['B'])
print(df.loc['one'])
Salin selepas log masuk

Sebagai alternatif, gunakan df.index.isin:

df.loc[df.index.isin(['one','two'])]
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memilih Baris dengan Cekap dalam Bingkai Data Pandas Berdasarkan Nilai Lajur?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan