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
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]
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)]
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
Menggabungkan Syarat
Berbilang syarat boleh digabungkan menggunakan operator logik seperti & (DAN) dan | (ATAU):
df.loc[(df['column_name'] >= A) & (df['column_name'] <= B)]
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})
Untuk memilih baris dengan 'A' sama 'foo':
print(df.loc[df['A'] == 'foo'])
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
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'])])
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
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!