Panda's: hoe nan-waarden te vervangen door een string
U kunt de volgende methoden gebruiken om NaN-waarden te vervangen door strings in een pandas DataFrame:
Methode 1: Vervang NaN-waarden door een string in het hele DataFrame
df. fillna ('', inplace= True )
Methode 2: Vervang NaN-waarden door een string in specifieke kolommen
df[[' col1 ', ' col2 ']] = df[[' col1 ', ' col2 ']]. fillna ('')
Methode 3: Vervang NaN-waarden door een string in een kolom
df. col1 = df. col1 . fillna ('')
De volgende voorbeelden laten zien hoe u elke methode kunt gebruiken met de volgende panda’s DataFrame:
import pandas as pd import numpy as np #create DataFrame with some NaN values df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' points ': [np.nan, 11, 7, 7, 8, 6, 14, 15], ' assists ': [5, np.nan, 7, 9, 12, 9, 9, 4], ' rebounds ': [11, 8, 10, np.nan, 6, 5, 9, np.nan]}) #view DataFrame df team points assists rebounds 0 A NaN 5.0 11.0 1 A 11.0 NaN 8.0 2 A 7.0 7.0 10.0 3 A 7.0 9.0 NaN 4 B 8.0 12.0 6.0 5 B 6.0 9.0 5.0 6 B 14.0 9.0 9.0 7 B 15.0 4.0 NaN
Methode 1: Vervang NaN-waarden door een string in het hele DataFrame
De volgende code laat zien hoe u elke NaN-waarde in een volledig DataFrame vervangt door een lege tekenreeks:
#replace NaN values in all columns with empty string
df. fillna ('', inplace= True )
#view updated DataFrame
df
team points assists rebounds
0 A 5.0 11.0
1 A 11.0 8.0
2 A 7.0 7.0 10.0
3 A 7.0 9.0
4 B 8.0 12.0 6.0
5 B 6.0 9.0 5.0
6 B 14.0 9.0 9.0
7B 15.0 4.0
Houd er rekening mee dat elke NaN-waarde in elke kolom is vervangen door een lege tekenreeks.
Methode 2: Vervang NaN-waarden door een string in specifieke kolommen
De volgende code laat zien hoe u NaN-waarden in specifieke kolommen vervangt door een specifieke tekenreeks:
#replace NaN values in 'points' and 'rebounds' columns with 'none'
df[[' points ', ' rebounds ']] = df[[' points ', ' rebounds ']]. fillna (' none ')
#view updated DataFrame
df
team points assists rebounds
0 A none 5.0 11.0
1 A 11.0 NaN 8.0
2 A 7.0 7.0 10.0
3 A 7.0 9.0 none
4 B 8.0 12.0 6.0
5 B 6.0 9.0 5.0
6 B 14.0 9.0 9.0
7 B 15.0 4.0 none
Merk op dat de NaN-waarden in de kolommen „punten“ en „rebounds“ zijn vervangen door de string „none“, maar dat de NaN-waarden in de kolom „assists“ ongewijzigd zijn gebleven.
Methode 3: Vervang NaN-waarden door een string in een kolom
De volgende code laat zien hoe je NaN-waarden in een kolom vervangt door een specifieke tekenreeks:
#replace NaN values in 'points' column with 'zero'
df. points = df. points . fillna (' zero ')
#view updated DataFrame
df
team points assists rebounds
0 To zero 5.0 11.0
1 A 11.0 NaN 8.0
2 A 7.0 7.0 10.0
3 A 7.0 9.0 NaN
4 B 8.0 12.0 6.0
5 B 6.0 9.0 5.0
6 B 14.0 9.0 9.0
7 B 15.0 4.0 NaN
Merk op dat de NaN-waarde in de kolom „punten“ is vervangen door de tekenreeks „nul“, maar dat de NaN-waarden in de kolommen „assists“ en „rebounds“ ongewijzigd zijn gebleven.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in panda’s kunt uitvoeren:
Panda’s: hoe waarden in een kolom te vervangen op basis van voorwaarde
Panda’s: hoe NaN-waarden te vervangen door nul
Panda’s: ontbrekende waarden tellen in DataFrame