Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menggantikan Nilai Pandas DataFrame Dengan Cekap Berdasarkan Keadaan?
Penggantian Bersyarat dalam Pandas DataFrames
Dalam bingkai data Pandas, menggantikan nilai berdasarkan syarat adalah tugas biasa. Pertimbangkan situasi di mana anda perlu menetapkan nilai dalam lajur tertentu kepada sifar jika nilai tersebut melebihi nilai ambang.
Pendekatan Asal:
Satu pendekatan biasa untuk mencapai ini ialah dengan menggunakan pengindeks df[].ix, yang ditamatkan dalam Pandas versi 0.20.0 dan lebih tinggi.
df[df.my_channel > 20000]['my_channel'] = 0
Penyelesaian Alternatif:
Dengan pengenalan pengindeks loc dan iloc, cara yang disyorkan untuk melakukan penggantian bersyarat ialah:
Menggunakan loc Pengindeks:
mask = df['my_channel'] > 20000 df.loc[mask, 'my_channel'] = 0
Pengindeks loc membenarkan pemilihan baris dan lajur berdasarkan topeng boolean. Dalam kes ini, topeng memilih baris di mana df['my_channel'] > 20000, dan baris ini ditetapkan kepada sifar dalam lajur 'my_channel'.
Menggunakan Iloc Indexer:
mask = df['my_channel'] > 20000 df.iloc[mask.index, df.columns.get_loc('my_channel')] = 0
Iloc indexer membenarkan pemilihan berdasarkan indeks integer. Dalam kes ini, indeks topeng digunakan untuk memilih baris dan indeks lajur 'my_channel' digunakan untuk menetapkan nilai kepada sifar.
Nota: Dalam kes khusus ini, menggunakan pengindeks loc disyorkan berbanding pengindeks iloc kerana iloc tidak menyokong pengindeksan boolean pada lajur integer.
Atas ialah kandungan terperinci Bagaimana untuk Menggantikan Nilai Pandas DataFrame Dengan Cekap Berdasarkan Keadaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!