You can replace NaN with Blank/Empty cells using either fillna() or replace() in Python.
Single Column:
Method 1: df[‘Column_name’].fillna(' ')
Method 2: df[‘Column_name’].replace(np.nan,' ', regex=True)
Whole dataframe:
Method 1: df.fillna(' ')
Method 2: df.replace(np.nan, ' ', regex=True)
Example 1: single column
The following uses fillna() to replace NaN with empty cells in a single column.
import pandas as pd
import numpy as np
# Create a dataframe with NaN
df = pd.DataFrame({'Col_1': [100, np.nan, 200, np.nan, 500],
'Col_2': [np.nan, 30, 100, 88, np.nan]})
# print out the dataframe with NaN
print('Dataframe with NaN: \n', df)
# replace NaN with Blank/Empty String
df['Col_1']=df['Col_1'].fillna(' ')
# print out the updated dataframe
print('Removed NaN in first column, replaced with empty cells: \n', df)
The updated dataframe has replaced NaN with Blank/Empty String in the first column.
Dataframe with NaN:
Col_1 Col_2
0 100.0 NaN
1 NaN 30.0
2 200.0 100.0
3 NaN 88.0
4 500.0 NaN
Removed NaN in first column, replaced with empty cells:
Col_1 Col_2
0 100 NaN
1 30.0
2 200 100.0
3 88.0
4 500 NaN
Example 2: whole dataframe
The following uses fillna() to replace NaN with empty cells in the whole dataframe.
import pandas as pd
import numpy as np
# Create a dataframe with NaN
df = pd.DataFrame({'Col_1': [100, np.nan, 200, np.nan, 300,500],
'Col_2': [np.nan, 30, 100, 88, 354,np.nan]})
# print out the dataframe with NaN
print('Dataframe with NaN: \n', df)
# replace NaN with Blank/Empty String
df=df.fillna(' ')
# updated dataframe with Blank/Empty String
print('Removed NaN, replaced with empty cells: \n', df)
The following shows the updated versions with empty cells, which originally were NaN.
Dataframe with NaN:
Col_1 Col_2
0 100.0 NaN
1 NaN 30.0
2 200.0 100.0
3 NaN 88.0
4 300.0 354.0
5 500.0 NaN
Removed NaN, replaced with empty cells:
Col_1 Col_2
0 100
1 30
2 200 100
3 88
4 300 354
5 500
Example 3: single column
The following shows using replace() to replace NaN with empty cells in a single column.
import pandas as pd
import numpy as np
# Create a dataframe with NaN
df = pd.DataFrame({'Col_1': [100, np.nan, 200, np.nan, 500],
'Col_2': [np.nan, 30, 100, 88, np.nan]})
# print out the dataframe with NaN
print('Dataframe with NaN: \n', df)
# replace NaN with empty cells using replace()
df['Col_1']=df['Col_1'].replace(np.nan,' ',regex=True)
# print out the updated dataframe
print('Removed NaN in first column, replaced with empty cells: \n', df)
The following shows both versions, NaN and empty cells.
Dataframe with NaN:
Col_1 Col_2
0 100.0 NaN
1 NaN 30.0
2 200.0 100.0
3 NaN 88.0
4 500.0 NaN
Removed NaN in first column, replaced with empty cells:
Col_1 Col_2
0 100 NaN
1 30.0
2 200 100.0
3 88.0
4 500 NaN
Method 4: whole dataframe
The following shows using replace() to replace NaN with empty cells for the whole dataframe.
import pandas as pd
import numpy as np
# Create a dataframe with NaN
df = pd.DataFrame({'Col_1': [100, np.nan, 200, np.nan, 500],
'Col_2': [np.nan, 30, 100, 88, np.nan]})
# print out the dataframe with NaN
print('Dataframe with NaN: \n', df)
# replace NaN with empty cells using replace()
df=df.replace(np.nan, ' ',regex=True)
# print out the updated dataframe
print('Removed NaN, replaced with empty cells: \n', df)
The following is the output, which shows that all the NaN in the whole dataframe has been replaced with empty cells.
Dataframe with NaN:
Col_1 Col_2
0 100.0 NaN
1 NaN 30.0
2 200.0 100.0
3 NaN 88.0
4 500.0 NaN
Removed NaN, replaced with empty cells:
Col_1 Col_2
0 100
1 30
2 200 100
3 88
4 500
Further Reading
The following shows two other tutorials related to NaN.