Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Memilih Data dengan Cekap daripada Bingkai Data Pandas Berdasarkan Nilai Lajur?

Bagaimana untuk Memilih Data dengan Cekap daripada Bingkai Data Pandas Berdasarkan Nilai Lajur?

Linda Hamilton
Lepaskan: 2024-12-24 01:24:11
asal
447 orang telah melayarinya

How to Efficiently Select Data from a Pandas DataFrame Based on Column Values?

Cara Memilih Data daripada DataFrame Berdasarkan Nilai Lajur

Dalam SQL, pertanyaan biasa untuk memilih baris berdasarkan nilai lajur akan kelihatan seperti:

SELECT *
FROM table
WHERE column_name = some_value
Salin selepas log masuk

Untuk mencapai hasil yang sama dalam Panda, terdapat beberapa pendekatan:

Padanan Nilai Tepat

Untuk memilih baris yang nilai lajurnya bersamaan dengan nilai tertentu (sesetengah nilai), gunakan operator == dalam .loc:

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

Pemasukan dan Pengecualian Nilai

Untuk memilih baris di mana nilai lajur terkandung dalam senarai (some_values), gunakan fungsi isin:

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

Untuk mengecualikan nilai tertentu, nafikan Siri boolean yang dikembalikan oleh isin:

df = df.loc[~df['column_name'].isin(some_values)] # Note: This is not an in-place operation
Salin selepas log masuk

Menggabungkan Syarat

Berbilang syarat boleh digabungkan menggunakan operator logik seperti & (DAN) dan | (ATAU):

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

Perhatikan bahawa tanda kurungan diperlukan untuk memastikan keutamaan pengendali yang betul.

Contoh

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

Untuk memilih baris dengan 'A' sama 'foo':

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

Hasil:

     A      B  C  D
0  foo    one  0  0
2  foo    two  2  4
4  foo    two  4  8
6  foo    one  6  12
7  foo  three  7  14
Salin selepas log masuk

Pengoptimuman untuk Pemilihan Berbilang Nilai

Untuk memilih baris berdasarkan berbilang nilai, ia adalah lebih cekap untuk mencipta indeks dan menggunakan .loc dengan df.index.isin. Ini mengelakkan berbilang panggilan kepada isin, menghasilkan prestasi yang lebih baik.

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

Hasil:

       A  C  D
B
one  foo  0  0
one  bar  1  2
one  foo  6  12
two  foo  2  4
two  foo  4  8
two  bar  5  10
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Memilih Data dengan Cekap daripada 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