Bagaimana untuk Menggantikan Rentetan Kosong (Ruang Putih) dengan NaN dalam Pandas DataFrame?

Linda Hamilton
Lepaskan: 2024-10-31 04:18:30
asal
614 orang telah melayarinya

How to Replace Empty Strings (Whitespace) with NaN in a Pandas DataFrame?

Menggantikan Nilai Kosong (Ruang Putih) dengan NaN dalam Panda

Bagaimana anda boleh menggantikan nilai kosong (ruang putih) dengan NaN dalam Panda dengan cekap kerangka data?

Pendekatan Awal:

Kod berikut mampu menggantikan nilai kosong dengan Tiada, tetapi ia tidak cekap dan bukan penyelesaian paling Pythonic:

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

Panda menawarkan penyelesaian yang lebih ringkas dan cekap melalui kaedah df.replace():

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

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

Kod ini menggantikan tempat kosong nilai (ungkapan biasa: ^s*$) dengan NaN, menghasilkan output yang diingini:

                   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

Nota:

Jika anda perlu mengendalikan data yang sah yang mungkin mengandungi ruang putih, anda boleh mengubah suai ungkapan biasa kepada r'^s $', yang hanya sepadan dengan medan yang terdiri sepenuhnya daripada ruang putih.

Atas ialah kandungan terperinci Bagaimana untuk Menggantikan Rentetan Kosong (Ruang Putih) dengan NaN dalam Pandas DataFrame?. 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!