Banyak operasi Panda boleh dilakukan melalui rantaian operator, termasuk kumpulan mengikut kumpulan, agregat dan gunakan. Walau bagaimanapun, penapisan baris lazimnya telah dilakukan menggunakan pengindeksan kurungan tradisional.
df_filtered = df[df['column'] == value]
Pendekatan ini memerlukan penugasan df kepada pembolehubah sebelum menapis, yang boleh menyusahkan. Adakah terdapat cara yang lebih mudah untuk merantai operasi penapisan?
Jawapan:
Walaupun baris terakhir kod yang diberikan dalam soalan tidak jelas, penapisan "berantai" boleh dicapai dengan merantai kriteria dalam indeks boolean.
df[(df.A == 1) & (df.D == 6)]
Selain itu, pengguna boleh mentakrifkan kaedah topeng mereka sendiri dan menggunakannya untuk penapisan:
def mask(df, key, value): return df[df[key] == value] pandas.DataFrame.mask = mask df = pandas.DataFrame(np.random.randint(0, 10, (4,4)), index=list('abcd'), columns=list('ABCD')) df.mask('A', 1) df.mask('A', 1).mask('D', 6)
Ini membolehkan rantaian operasi penapis yang mudah .
Atas ialah kandungan terperinci Bolehkah Operator Chaining Digunakan untuk Menapis Baris DataFrame dalam Panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!