Kaedah Pandas replace() Tidak Berfungsi? Cuba Pembetulan Mudah Ini
Apabila cuba menggantikan rentetan dalam Pandas DataFrame menggunakan kaedah replace(), ada kemungkinan untuk menghadapi isu yang membingungkan apabila tiada penggantian berlaku. Berbeza dengan penggantian yang kompleks, keadaan ini selalunya melibatkan percubaan penggantian yang mudah.
Untuk menggambarkan, mari kita periksa kerangka data berikut:
d = {'color' : pd.Series(['white', 'blue', 'orange']), 'second_color': pd.Series(['white', 'black', 'blue']), 'value' : pd.Series([1., 2., 3.])} df = pd.DataFrame(d)
Apabila kita cuba menggantikan semua kejadian 'putih' dengan NaN, secara mengejutkan, tiada apa yang berlaku:
df.replace('white', np.nan)
Keluaran kekal tidak berubah:
color second_color value 0 white white 1 1 blue black 2 2 orange blue 3
Jadi, apa yang berlaku?
Ternyata pengganti() kaedah melakukan carian penggantian penuh secara lalai. Untuk mendayakan penggantian separa, kita perlu menetapkan parameter regex kepada Benar:
df.replace('white', np.nan, regex=True)
Sebagai alternatif, kita boleh menggunakan kaedah str.replace(), yang menawarkan lebih kawalan ke atas proses penggantian:
df['color'].str.replace('white', np.nan)
Petua Bonus: Jika anda mempertimbangkan untuk menggunakan inplace=True untuk melakukan penggantian di tempat, pastikan anda memahami kaveatnya.
Atas ialah kandungan terperinci Mengapakah Kaedah Panda Saya `replace()` Berfungsi untuk Penggantian Rentetan Mudah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!