Featured Post

15 Python Tips : How to Write Code Effectively

Image
 Here are some Python tips to keep in mind that will help you write clean, efficient, and bug-free code.     Python Tips for Effective Coding 1. Code Readability and PEP 8  Always aim for clean and readable code by following PEP 8 guidelines.  Use meaningful variable names, avoid excessively long lines (stick to 79 characters), and organize imports properly. 2. Use List Comprehensions List comprehensions are concise and often faster than regular for-loops. Example: squares = [x**2 for x in range(10)] instead of creating an empty list and appending each square value. 3. Take Advantage of Python’s Built-in Libraries  Libraries like itertools, collections, math, and datetime provide powerful functions and data structures that can simplify your code.   For example, collections.Counter can quickly count elements in a list, and itertools.chain can flatten nested lists. 4. Use enumerate Instead of Range     When you need both the index and the value in a loop, enumerate is a more Pyth

How to Fill Nulls in Pandas: bfill and ffill

In Pandas, bfill and ffill are two important methods used for filling missing values in a DataFrame or Series by propagating the previous (forward fill) or next (backward fill) valid values respectively. These methods are particularly useful when dealing with time series data or other ordered data where missing values need to be filled based on the available adjacent values.


Bfill and Ffill methods


ffill (forward fill):

When you use the ffill method on a DataFrame or Series, it fills missing values with the previous non-null value in the same column. It propagates the last known value forward.

This method is often used to carry forward the last observed value for a specific column, making it a good choice for time series data when the assumption is that the value doesn't change abruptly.

Example:


import pandas as pd


data = {'A': [1, 2, None, 4, None, 6],

        'B': [None, 'X', 'Y', None, 'Z', 'W']}


df = pd.DataFrame(data)

print(df)

# Output:

#      A     B

# 0  1.0  None

# 1  2.0     X

# 2  NaN     Y

# 3  4.0  None

# 4  NaN     Z

# 5  6.0     W


# Forward fill missing values

df_filled = df.ffill()

print(df_filled)

# Output:

#      A     B

# 0  1.0  None

# 1  2.0     X

# 2  2.0     Y

# 3  4.0     Y

# 4  4.0     Z

# 5  6.0     W


bfill (backward fill):

The bfill method fills missing values with the next non-null value in the same column. It propagates the next known value backward.

Like ffill, this method can be useful in time series data, especially when values are missing at the beginning of the dataset.

Example:


import pandas as pd


data = {'A': [None, 2, None, 4, 5, None],

        'B': ['X', 'Y', None, None, 'Z', None]}


df = pd.DataFrame(data)

print(df)

# Output:

#      A     B

# 0  NaN     X

# 1  2.0     Y

# 2  NaN  None

# 3  4.0  None

# 4  5.0     Z

# 5  NaN  None


# Backward fill missing values

df_filled = df.bfill()

print(df_filled)

# Output:

#      A     B

# 0  2.0     X

# 1  2.0     Y

# 2  4.0  None

# 3  4.0     Z

# 4  5.0     Z

# 5  NaN  None

These methods can be very useful for handling missing data when the order of the data is important, such as in time series analysis.

Comments

Popular posts from this blog

How to Fix datetime Import Error in Python Quickly

SQL Query: 3 Methods for Calculating Cumulative SUM

Python placeholder '_' Perfect Way to Use it