Bagaimana untuk Menggantikan Nilai Whitespace dengan NaN dalam Pandas DataFrames dengan cekap?

Mary-Kate Olsen
Lepaskan: 2024-10-27 05:03:30
asal
224 orang telah melayarinya

How to Efficiently Replace Whitespace Values with NaN in Pandas DataFrames?

Menggantikan Nilai Kosong (Ruang Putih) dengan NaN dalam Panda

Masalah:

Pertimbangkan bingkai data Pandas dengan nilai ruang putih terdapat dalam lajur tertentu. Matlamatnya adalah untuk menggantikan ruang putih ini dengan nilai NaN.

Penyelesaian Hodoh:

<code class="python">for i in df.columns:
    df[i][df[i].apply(lambda i: True if re.search('^\s*$', str(i)) else False)]=None</code>
Salin selepas log masuk

Penyelesaian ini berulang melalui setiap lajur, menghasilkan topeng boolean menggunakan regex, dan menggantikan nilai ruang putih dengan Tiada. Walau bagaimanapun, ia tidak cekap dan bukan idiomatik.

Penyelesaian yang Diperbaiki:

<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'))

# replaces field that's entirely space (or empty) with NaN
print(df.replace(r'^\s*$', np.nan, regex=True))</code>
Salin selepas log masuk

Penyelesaian ini mengambil kesempatan daripada fungsi replace() terbina dalam Pandas, yang boleh digunakan untuk menggantikan nilai yang ditentukan berdasarkan corak regex. Dengan menggunakan r'^s*$', regex sepadan dan menggantikan mana-mana medan yang terdiri sepenuhnya daripada ruang putih (atau kosong) dengan NaN.

Pengoptimuman:

  • Semak sama ada jenis data lajur ialah objek, kerana nilai ruang putih biasanya ditemui dalam lajur objek.
  • Gunakan r'^s $' dan bukannya r'^s*$' jika data yang sah mengandungi aksara ruang putih .

Atas ialah kandungan terperinci Bagaimana untuk Menggantikan Nilai Whitespace dengan NaN dalam Pandas DataFrames dengan cekap?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!