In this article, we are going to discuss how to ffill missing value in Pandas. We will learn pandas ffill by example code. The pandas dataframe fillna() method makes users replace nan or missing value or null with their own values.
1. How to ffill missing value in Pandas
The pandas ffill() function allows us to fill the missing value in the dataframe. The ffill stand for forwarding fill, replace the null values with the value from the previous row else column if axis is set to axis = ‘columns’.In this python program code example, we will discuss how to forward fill missing value in all columns of pandas dataframe by passing fillna(method=ffill).
import pandas as pd
import numpy as np
Student_dict = {
'Name': ['Jack', 'Rack', np.nan],
'Marks':[100.5,np.nan, np.nan],
'Subject': [np.nan, 'Math', 'Music']
}
dfobj = pd.DataFrame(Student_dict)
dfobj = dfobj.fillna(method="ffill")
print(dfobj)
Output:
Name Marks Subject
0 Jack 100.5 NaN
1 Rack 100.5 Math
2 Rack 100.5 Music
2. Pandas ffill one column
Sometimes instead of forward fill the whole pandas dataframe, we need to forward fill the single column of the pandas dataframe. In this code example, we will understand how to forward fill the single column of pandas dataframe.
import pandas as pd
import numpy as np
Student_dict = {
'Name': ['Jack', 'Rack', np.nan],
'Marks':[100.5,np.nan, np.nan],
'Subject': [np.nan, 'Math', 'Music']
}
dfobj = pd.DataFrame(Student_dict)
dfobj["Subject"] = dfobj["Subject"].fillna(method="ffill")
print(dfobj)
Output:
Name Marks Subject
0 Jack 100.5 NaN
1 Rack NaN Math
2 NaN NaN Music
3. Pandas ffill mutiple columns
In this code example, we will understand how to fill multiple columns of pandas dataframe by using the ffill() function. We specify the name of columns we want forward fill and return a copy of the dataframe after forward fill the values.
import pandas as pd
import numpy as np
Student_dict = {
'Name': ['Jack', 'Rack', np.nan],
'Marks':[100.5,np.nan, np.nan],
'Subject': [np.nan, 'Math', 'Music']
}
dfobj = pd.DataFrame(Student_dict)
dfobj[['Name', 'Marks']] = dfobj[['Name', 'Marks']].fillna(method="ffill")
print (dfobj)
Output
Name Marks Subject
0 Jack 100.5 NaN
1 Rack 100.5 Math
2 Rack 100.5 Musics
4. Pandas Groupby ffill() missing values
In this pandas group by ffill example. we will learn how to group by ffill missing/nan values in Pandas dataframe. If we do not want to fill another column with ‘nan’ then we can specify the column name using this code.
dfobj['Marks'] = dfobj.groupby('Subject')['Marks'].ffill()
print(dfobj)
import pandas as pd
import numpy as np
Student_dict = {
'Name': ['Jack','Rack','Max','Tony', np.nan],
'Marks':[100,np.nan,80,90,100],
'Subject': ['Math', 'Math', 'Music','Math',np.nan]
}
dfobj = pd.DataFrame(Student_dict)
dfobj.groupby('Subject').ffill()
print(dfobj)
Output
Name Marks Subject
0 Jack 100.0 Math
1 Rack 100.0 Math
2 Max 80.0 Music
3 Tony 90.0 Math
4 NaN 100.0 NaN
5. Pandas ffill zeros with a previous non-zero value
In this Python code example, we will learn how to replace zeros with previous non-zero values by using the replace() method of pandas dataframe in which we have specified the first argument zero value that we want to replace with ffill previous non-zero value.
import pandas as pd
import numpy as np
Student_dict = {
'Name': ['Jack','Rack','Max','Tony'],
'Marks':[90,0,0,100],
'Subject': ['Math', 'Math', 'Music','Math']
}
dfobj = pd.DataFrame(Student_dict)
dfobj['Marks'] = dfobj['Marks'].replace(to_replace=0, method='ffill')
print(dfobj)
Output
Name Marks Subject
0 Jack 90 Math
1 Rack 90 Math
2 Max 90 Music
3 Tony 100 Math
6. Pandas ffill with a limit
The Pandas dataframe ffil() method limit parameter specifies that a maximum number of continuous nan values forward fill in Pandas dataframe.
import pandas as pd
import numpy as np
Student_dict = {
'Name': ['Jack','Rack','Max',np.nan],
'Marks':[90,90,np.nan,100],
'Subject': ['Math', 'Math','Music',np.nan]
}
dfobj = pd.DataFrame(Student_dict)
print(dfobj.ffill(axis=0,limit=1))
Output
Name Marks Subject
0 Jack 90.0 Math
1 Rack 90.0 Math
2 Max 90.0 Music
3 Max 100.0 Music
Summary
In this post we have learned how to ffill missing values in Pandas by using the dataframe function ffill(),fillna() and replace() and groupby() with program examples for each. We can use any of them as per our needs.