Mengapakah Kaedah Panda Saya `replace()` Berfungsi untuk Penggantian Rentetan Mudah?

Mary-Kate Olsen
Lepaskan: 2024-11-02 09:48:02
asal
516 orang telah melayarinya

Why Isn't My Pandas `replace()` Method Working for Simple String Replacements?

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)
Salin selepas log masuk

Apabila kita cuba menggantikan semua kejadian 'putih' dengan NaN, secara mengejutkan, tiada apa yang berlaku:

df.replace('white', np.nan)
Salin selepas log masuk

Keluaran kekal tidak berubah:

      color second_color  value
0   white        white      1
1    blue        black      2
2  orange         blue      3
Salin selepas log masuk

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)
Salin selepas log masuk

Sebagai alternatif, kita boleh menggunakan kaedah str.replace(), yang menawarkan lebih kawalan ke atas proses penggantian:

df['color'].str.replace('white', np.nan)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan