Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah anda menggantikan nilai ruang putih dengan NaN dalam bingkai data Pandas?

Bagaimanakah anda menggantikan nilai ruang putih dengan NaN dalam bingkai data Pandas?

Susan Sarandon
Lepaskan: 2024-10-30 10:13:27
asal
307 orang telah melayarinya

How do you replace whitespace values with NaN in a Pandas dataframe?

Menggantikan Nilai Kosong dengan NaN dalam Panda

Masalah

Mencari nilai ruang putih dalam bingkai data Pandas dan menggantikannya dengan NaN boleh menjadi satu cabaran. Matlamatnya adalah untuk menukar bingkai data dengan nilai rentetan kosong kepada satu dengan nilai NaN, yang berpotensi meningkatkan pengendalian dan analisis data.

Penyelesaian

Kaedah df.replace() menyediakan penyelesaian yang elegan, membolehkan anda untuk menggantikan nilai berdasarkan ungkapan biasa:

<code class="python">df.replace(r'^\s*$', np.nan, regex=True)</code>
Salin selepas log masuk

Dalam corak regex ini, ^ sepadan dengan permulaan rentetan, s* sepadan dengan sifar atau lebih aksara ruang putih dan $ sepadan dengan penghujung rentetan. Oleh itu, regex ini menyemak rentetan yang terdiri sepenuhnya daripada ruang kosong atau rentetan kosong.

Pelaksanaan

Menggunakan penyelesaian ini pada kerangka data contoh:

<code class="python">df = pd.DataFrame([
    [-0.532681, 'foo', 0],
    [1.490752, 'bar', 1],
    [-1.387326, 'foo', 2],
    [0.814772, 'baz', ' '],     
    [-0.222552, '   ', 4],
    [-1.176781,  'qux', '  '],         
], columns='A B C'.split(), index=pd.date_range('2000-01-01','2000-01-06'))

result = df.replace(r'^\s*$', np.nan, regex=True)

print(result)</code>
Salin selepas log masuk

Ini akan menghasilkan output yang dikehendaki:

                   A    B   C
2000-01-01 -0.532681  foo   0
2000-01-02  1.490752  bar   1
2000-01-03 -1.387326  foo   2
2000-01-04  0.814772  baz NaN
2000-01-05 -0.222552  NaN   4
2000-01-06 -1.176781  qux NaN
Salin selepas log masuk

Peningkatan

Seperti yang ditunjukkan oleh Temak, jika data yang sah mungkin mengandungi ruang kosong, corak regex boleh diubah suai kepada r'^s $' untuk memadankan hanya rentetan yang terdiri sepenuhnya daripada ruang putih:

<code class="python">df.replace(r'^\s+$', np.nan, regex=True)</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah anda menggantikan nilai ruang putih dengan NaN dalam bingkai data Pandas?. 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