Apabila bekerja dengan Pandas DataFrames, selalunya timbul keperluan untuk menapis baris berdasarkan nilai tertentu dalam lajur tertentu. Ini meniru pertanyaan SQL yang mana baris diambil menggunakan penapis seperti WHERE column_name = some_value.
Untuk memilih baris yang nilai lajur sepadan dengan nilai skalar, some_value, gunakan operator kesamaan == :
df.loc[df['column_name'] == some_value]
Untuk memilih baris di mana nilai lajur berada dalam tatasusunan, some_values, gunakan kaedah isin:
df.loc[df['column_name'].isin(some_values)]
Berbilang syarat boleh digabungkan menggunakan logik & operator:
df.loc[(df['column_name'] >= A) & (df['column_name'] <= B)]
Nota: Gunakan kurungan untuk memastikan keutamaan pengendali adalah betul.
Untuk memilih baris yang nilai lajur tidak sama dengan some_value, gunakan operator ketaksamaan !=:
df.loc[df['column_name'] != some_value]
Untuk isin, menafikan keputusan menggunakan ~:
df = df.loc[~df['column_name'].isin(some_values)]
Pertimbangkan DataFrame berikut:
import pandas as pd df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'], 'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'], 'C': np.arange(8), 'D': np.arange(8) * 2}) print(df)
Pilih baris di mana A adalah foo:
print(df.loc[df['A'] == 'foo'])
Pilih baris di mana B ialah satu atau tiga:
print(df.loc[df['B'].isin(['one', 'three'])])
Buat indeks dan pilih baris menggunakannya:
df = df.set_index(['B']) print(df.loc['one'])
Pilih baris dengan berbilang nilai diindeks:
print(df.loc[df.index.isin(['one', 'two'])])
Atas ialah kandungan terperinci Bagaimana untuk Memilih Baris Khusus dalam Pandas DataFrames Berdasarkan Nilai Lajur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!