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.
Untuk mendapatkan semula baris yang nilai lajurnya sepadan dengan nilai tertentu, manfaatkan operator ==:
df.loc[df['column_name'] == some_value]
Sebaliknya, jika anda ingin memilih baris yang nilai lajur tergolong dalam koleksi nilai, gunakan isin:
df.loc[df['column_name'].isin(some_values)]
Untuk menggabungkan berbilang syarat dalam pilihan anda, sambungkannya dengan &:
df.loc[(df['column_name'] >= A) & (df['column_name'] <= B)]
Nota: Tanda kurung adalah penting di sini untuk memastikan penilaian yang betul.
Untuk mengecualikan baris dengan nilai lajur tertentu, gunakan !=:
df.loc[df['column_name'] != some_value]
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
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)
Memilih baris dengan nilai 'A' 'foo':
print(df.loc[df['A'] == 'foo'])
Memilih baris dengan nilai 'B' 'satu' atau 'tiga':
print(df.loc[df['B'].isin(['one','three'])])
Untuk penapisan yang kerap operasi, adalah lebih cekap untuk mencipta indeks dahulu:
df = df.set_index(['B']) print(df.loc['one'])
Sebagai alternatif, gunakan df.index.isin:
df.loc[df.index.isin(['one','two'])]
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!