Heim  >  Artikel  >  Backend-Entwicklung  >  Wie ersetze ich leere Werte (Leerzeichen) durch NaN in einem Pandas DataFrame?

Wie ersetze ich leere Werte (Leerzeichen) durch NaN in einem Pandas DataFrame?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-30 12:57:26291Durchsuche

How do I replace blank values (whitespace) with NaN in a Pandas DataFrame?

Ersetzen von Leerwerten (Leerzeichen) durch NaN in Pandas

Die Datenbereinigung ist ein entscheidender Schritt in der Datenanalyse. Eine häufige Aufgabe besteht darin, leere Werte (Leerzeichen) durch NaN zu ersetzen. Dies kann mit Pandas effizient durchgeführt werden.

Um dies zu erreichen, verwenden Sie die Funktion df.replace(). Diese Funktion ermöglicht eine auf regulären Ausdrücken basierende Such- und Ersetzungsoperation für DataFrame-Werte. So können Sie es implementieren:

<code class="python">import numpy as np
import pandas as pd

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 fields that contain only whitespace (or are empty) with NaN
print(df.replace(r'^\s*$', np.nan, regex=True))

# Output:
#                    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</code>

Beachten Sie, dass dieser Code Felder ersetzt, die nur Leerzeichen enthalten oder leer sind (d. h. mit dem regulären Ausdruck r'^s*$'** übereinstimmen). Wenn Ihre gültigen Daten Leerzeichen enthalten, passen Sie die Regex entsprechend an (entfernen Sie z. B. das **$ am Ende für r'^s ').

Das obige ist der detaillierte Inhalt vonWie ersetze ich leere Werte (Leerzeichen) durch NaN in einem Pandas DataFrame?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn