400 Stimmen

Pandas NaN durch leer/leer Zeichen ersetzen

Ich habe ein Pandas-Datenrahmen wie unten gezeigt:

    1    2       3
 0  a  NaN    read
 1  b    l  unread
 2  c  NaN    read

Ich möchte die NaN-Werte durch einen leeren String ersetzen, sodass es so aussieht:

    1    2       3
 0  a   ""    read
 1  b    l  unread
 2  c   ""    read

656voto

fantabolous Punkte 18632
df = df.fillna('')

Dies füllt NaN-Werte (z. B. NaN's) mit '' aus.

inplace ist möglich, sollte jedoch vermieden werden, da es intern trotzdem eine Kopie erstellt und veraltet sein wird:

df.fillna('', inplace=True)

Um nur eine einzelne Spalte zu füllen:

df.column1 = df.column1.fillna('')

Man kann df['column1'] anstelle von df.column1 verwenden.

396voto

nEO Punkte 5057
import numpy as np
df1 = df.replace(np.nan, '', regex=True)

Dies könnte helfen. Es ersetzt alle NaNs durch einen leeren String.

172voto

Natesh bhat Punkte 9865

Wenn Sie das DataFrame aus einer Datei (z.B. CSV oder Excel) lesen, verwenden Sie:

df.read_csv(path , na_filter=False)

df.read_excel(path , na_filter=False)

Dies berücksichtigt automatisch leere Felder als leere Zeichenfolgen ''


Wenn Sie bereits das DataFrame haben

df = df.replace(np.nan, '', regex=True)

df = df.fillna('')

10voto

Steve Schulist Punkte 831

Verwenden Sie einen Formatter, wenn Sie ihn nur formatieren möchten, damit er beim Drucken gut lesbar ist. Verwenden Sie einfach df.to_string(... Formatters, um benutzerdefinierte Zeichenformatierungen zu definieren, ohne unnötig Ihr DataFrame zu ändern oder Speicherplatz zu verschwenden:

df = pd.DataFrame({
    'A': ['a', 'b', 'c'],
    'B': [np.nan, 1, np.nan],
    'C': ['gelesen', 'ungelesen', 'gelesen']})
print df.to_string(
    formatters={'B': lambda x: '' if pd.isnull(x) else '{:.0f}'.format(x)})

Um zu erhalten:

   A B       C
0  a      gelesen
1  b 1  ungelesen
2  c      gelesen

7voto

Vineesh TP Punkte 7319

Versuche dies,

füge inplace=True hinzu

import numpy as np
df.replace(np.NaN, '', inplace=True)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X