{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Examples**"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" P | \n",
" Q | \n",
" R | \n",
" S | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" NaN | \n",
" 3.0 | \n",
" NaN | \n",
" 0 | \n",
"
\n",
" \n",
" 1 | \n",
" 4.0 | \n",
" 5.0 | \n",
" NaN | \n",
" 2 | \n",
"
\n",
" \n",
" 2 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" 6 | \n",
"
\n",
" \n",
" 3 | \n",
" NaN | \n",
" 4.0 | \n",
" NaN | \n",
" 5 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" P Q R S\n",
"0 NaN 3.0 NaN 0\n",
"1 4.0 5.0 NaN 2\n",
"2 NaN NaN NaN 6\n",
"3 NaN 4.0 NaN 5"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.DataFrame([[np.nan, 3, np.nan, 0],\n",
" [4, 5, np.nan, 2],\n",
" [np.nan, np.nan, np.nan, 6],\n",
" [np.nan, 4, np.nan, 5]],\n",
" columns=list('PQRS'))\n",
"df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Replace all NaN elements with 0s:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" P | \n",
" Q | \n",
" R | \n",
" S | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.0 | \n",
" 3.0 | \n",
" 0.0 | \n",
" 0 | \n",
"
\n",
" \n",
" 1 | \n",
" 4.0 | \n",
" 5.0 | \n",
" 0.0 | \n",
" 2 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 6 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.0 | \n",
" 4.0 | \n",
" 0.0 | \n",
" 5 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" P Q R S\n",
"0 0.0 3.0 0.0 0\n",
"1 4.0 5.0 0.0 2\n",
"2 0.0 0.0 0.0 6\n",
"3 0.0 4.0 0.0 5"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.fillna(0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can also propagate non-null values forward or backward:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" P | \n",
" Q | \n",
" R | \n",
" S | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" NaN | \n",
" 3.0 | \n",
" NaN | \n",
" 0 | \n",
"
\n",
" \n",
" 1 | \n",
" 4.0 | \n",
" 5.0 | \n",
" NaN | \n",
" 2 | \n",
"
\n",
" \n",
" 2 | \n",
" 4.0 | \n",
" 5.0 | \n",
" NaN | \n",
" 6 | \n",
"
\n",
" \n",
" 3 | \n",
" 4.0 | \n",
" 4.0 | \n",
" NaN | \n",
" 5 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" P Q R S\n",
"0 NaN 3.0 NaN 0\n",
"1 4.0 5.0 NaN 2\n",
"2 4.0 5.0 NaN 6\n",
"3 4.0 4.0 NaN 5"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.fillna(method='ffill')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Replace all NaN elements in column ‘P’, ‘Q’, ‘R’, and ‘S’, with 0, 2, 3, and 4 respectively:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" P | \n",
" Q | \n",
" R | \n",
" S | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.0 | \n",
" 3.0 | \n",
" 3.0 | \n",
" 0 | \n",
"
\n",
" \n",
" 1 | \n",
" 4.0 | \n",
" 5.0 | \n",
" 3.0 | \n",
" 2 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.0 | \n",
" 2.0 | \n",
" 3.0 | \n",
" 6 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.0 | \n",
" 4.0 | \n",
" 3.0 | \n",
" 5 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" P Q R S\n",
"0 0.0 3.0 3.0 0\n",
"1 4.0 5.0 3.0 2\n",
"2 0.0 2.0 3.0 6\n",
"3 0.0 4.0 3.0 5"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"values = {'P': 0, 'Q': 2, 'R': 3, 'S': 4}\n",
"df.fillna(value=values)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Only replace the first NaN element:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" P | \n",
" Q | \n",
" R | \n",
" S | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.0 | \n",
" 3.0 | \n",
" 3.0 | \n",
" 0 | \n",
"
\n",
" \n",
" 1 | \n",
" 4.0 | \n",
" 5.0 | \n",
" NaN | \n",
" 2 | \n",
"
\n",
" \n",
" 2 | \n",
" NaN | \n",
" 2.0 | \n",
" NaN | \n",
" 6 | \n",
"
\n",
" \n",
" 3 | \n",
" NaN | \n",
" 4.0 | \n",
" NaN | \n",
" 5 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" P Q R S\n",
"0 0.0 3.0 3.0 0\n",
"1 4.0 5.0 NaN 2\n",
"2 NaN 2.0 NaN 6\n",
"3 NaN 4.0 NaN 5"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.fillna(value=values, limit=1)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.1"
}
},
"nbformat": 4,
"nbformat_minor": 4
}