Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa DataFrame Pandas Saya Tidak Menggantikan Nilai dengan `replace()`?

Mengapa DataFrame Pandas Saya Tidak Menggantikan Nilai dengan `replace()`?

Linda Hamilton
Linda Hamiltonasal
2024-10-27 02:17:30119semak imbas

Why Isn't My Pandas DataFrame Replacing Values with `replace()`?

Mengapa Kaedah replace() Tidak Menggantikan Nilai dalam My Pandas DataFrame?

Walaupun cuba menggantikan rentetan tertentu dengan NaN secara ringkas DataFrame, kaedah replace() nampaknya tidak berkesan. Contohnya:

<code class="python">d = {'color' : pd.Series(['white', 'blue', 'orange']),
   'second_color': pd.Series(['white', 'black', 'blue']),
   'value' : pd.Series([1., 2., 3.])}
df = pd.DataFrame(d)
df.replace('white', np.nan)</code>

Keluaran yang dijangkakan, dengan nilai 'putih' digantikan dengan NaN, tidak tercapai. Sebaliknya, DataFrame kekal tidak berubah.

Penyelesaian: Dayakan Penggantian Separa dengan regex=True

Secara lalai, kaedah replace() melakukan penggantian rentetan penuh. Untuk mendayakan penggantian separa, parameter regex mesti ditetapkan kepada Benar. Tweak kecil ini membolehkan kami menggantikan rentetan tertentu di mana-mana sahaja dalam DataFrame:

<code class="python">df.replace('white', np.nan, regex=True)</code>

Dengan pengubahsuaian ini, DataFrame akan menggantikan semua kejadian 'putih' dengan NaN dengan betul.

Atas ialah kandungan terperinci Mengapa DataFrame Pandas Saya Tidak Menggantikan Nilai dengan `replace()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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