
- Python Basic Tutorial
- Python - Home
- Python - Overview
- Python - Environment Setup
- Python - Basic Syntax
- Python - Comments
- Python - Variables
- Python - Data Types
- Python - Operators
- Python - Decision Making
- Python - Loops
- Python - Numbers
- Python - Strings
- Python - Lists
- Python - Tuples
- Python - Dictionary
- Python - Date & Time
- Python - Functions
- Python - Modules
- Python - Files I/O
- Python - Exceptions
Python - How to fill NAN values with mean in Pandas?
For mean, use the mean() function. Calculate the mean for the column with NaN and use the fillna() to fill the NaN values with the mean.
Let us first import the required libraries −
import pandas as pd import numpy as np
Create a DataFrame with 2 columns and some NaN values. We have entered these NaN values using numpy np.NaN −
dataFrame = pd.DataFrame( { "Car": ['BMW', 'Lexus', 'Lexus', 'Mustang', 'Bentley', 'Mustang'],"Units": [100, 150, np.NaN, 80, np.NaN, np.NaN] } )
Finding mean of the column values with NaN i.e, for Units columns here. So, the Units column has 100, 150 and 80; therefore, the mean would be 110 −
meanVal = dataFrame['Units'].mean()
Replace NaNs with the mean of the column where it is located. The mean calculated above is 110, so NaN values will be replaced with 110 −
dataFrame['Units'].fillna(value=meanVal, inplace=True)
Example
Following is the code −
import pandas as pd import numpy as np # Create DataFrame dataFrame = pd.DataFrame( { "Car": ['BMW', 'Lexus', 'Lexus', 'Mustang', 'Bentley', 'Mustang'],"Units": [100, 150, np.NaN, 80, np.NaN, np.NaN] } ) print"DataFrame ...\n",dataFrame # finding mean of the column values with NaN i.e, for Units columns here # so the Units column has 100, 150 and 80; therefore the mean would ne 110 meanVal = dataFrame['Units'].mean() # Replace NaNs with the mean of the column where it is located # the mean calculated above is 110, so NaN values will be replaced with 110 dataFrame['Units'].fillna(value=meanVal, inplace=True) print"\nUpdated Dataframe after filling NaN values with mean...\n",dataFrame
Output
This will produce the following output −
DataFrame ... Car Units 0 BMW 100.0 1 Lexus 150.0 2 Lexus NaN 3 Mustang 80.0 4 Bentley NaN 5 Mustang NaN Updated Dataframe after filling NaN values with mean... Car Units 0 BMW 100.0 1 Lexus 150.0 2 Lexus 110.0 3 Mustang 80.0 4 Bentley 110.0 5 Mustang 110.0
- Related Articles
- Python Pandas - Fill missing columns values (NaN) with constant values
- Python Pandas - Fill NaN with Linear Interpolation
- Python Pandas - Fill NaN with Polynomial Interpolation
- Python Pandas - Fill NaN values using an interpolation method
- Python Pandas - Fill NaN values with the specified value in an Index object
- Replace NaN with zero and fill positive infinity values in Python
- Replace NaN with zero and fill negative infinity values in Python
- Replace infinity with large finite numbers but fill NaN values in Python
- Python Pandas - Return Index without NaN values
- How to count the NaN values in a column in a Python Pandas DataFrame?
- Replace NaN with zero and fill positive infinity for complex input values in Python
- Replace NaN with zero and fill negative infinity for complex input values in Python
- Replace infinity with large finite numbers and fill NaN for complex input values in Python
- How does pandas series argsort handles nan values?
- Merge Python Pandas dataframe with a common column and set NaN for unmatched values

Advertisements