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.
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>
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.
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>
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
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>
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!