Pandas:仅填充数字(int 或 float)列

作者:编程家 分类: pandas 时间:2025-11-21

使用Pandas库中的方法,我们可以轻松地对DataFrame中的数字列进行填充。在数据处理和分析中,经常会遇到一些缺失值或空值,这会对后续的计算和分析造成困扰。因此,填充这些缺失值是非常重要的一步。Pandas提供了多种填充方法,本文将重点介绍如何仅填充数字(int或float)列。

使用ffill和bfill填充数字列

Pandas中的ffill和bfill方法可以分别用来向前或向后填充缺失值。这两个方法将根据前一个或后一个非缺失值来填充缺失值。在处理数字列时,ffill和bfill方法只会填充数字类型的数据,对其他类型的数据不会产生影响。

下面是一个简单的示例代码,展示了如何使用ffill和bfill方法填充数字列:

python

import pandas as pd

# 创建包含缺失值的DataFrame

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

'B': [None, 2.5, 3.5, None, 5.5],

'C': ['a', 'b', 'c', 'd', 'e']}

df = pd.DataFrame(data)

# 使用ffill方法向前填充数字列

df['A'] = df['A'].ffill()

# 使用bfill方法向后填充数字列

df['B'] = df['B'].bfill()

print(df)

在上面的例子中,我们创建了一个包含缺失值的DataFrame,并使用ffill方法向前填充了列'A'的缺失值,使用bfill方法向后填充了列'B'的缺失值。可以看到,填充后的DataFrame中,列'A'的缺失值被前一个非缺失值1填充,列'B'的缺失值被后一个非缺失值5.5填充。

使用mean、median或mode填充数字列

除了使用ffill和bfill方法填充数字列外,Pandas还提供了mean、median和mode等方法来填充数字列。这些方法可以根据列的均值、中位数和众数来填充缺失值。

下面是一个示例代码,展示了如何使用mean方法填充数字列:

python

import pandas as pd

# 创建包含缺失值的DataFrame

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

'B': [None, 2.5, 3.5, None, 5.5],

'C': ['a', 'b', 'c', 'd', 'e']}

df = pd.DataFrame(data)

# 使用mean方法填充数字列

df['A'] = df['A'].fillna(df['A'].mean())

print(df)

在上述代码中,我们使用mean方法计算了列'A'的均值,并使用fillna方法将缺失值填充为该均值。可以看到,填充后的DataFrame中,列'A'的缺失值被均值3填充。

使用interpolate方法填充数字列

除了上述介绍的填充方法外,Pandas还提供了interpolate方法来进行插值填充。该方法根据已知的数据点之间的线性关系,对缺失值进行估计和填充。

下面是一个示例代码,展示了如何使用interpolate方法填充数字列:

python

import pandas as pd

# 创建包含缺失值的DataFrame

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

'B': [None, 2.5, 3.5, None, 5.5],

'C': ['a', 'b', 'c', 'd', 'e']}

df = pd.DataFrame(data)

# 使用interpolate方法填充数字列

df['A'] = df['A'].interpolate()

print(df)

在上述代码中,我们使用interpolate方法对列'A'进行插值填充。可以看到,填充后的DataFrame中,列'A'的缺失值被插值填充为2和4之间的值3。

本文介绍了如何使用Pandas库中的方法仅填充数字列。我们学习了使用ffill和bfill方法向前或向后填充数字列,使用mean、median或mode方法根据均值、中位数或众数填充数字列,以及使用interpolate方法进行插值填充。这些方法能够帮助我们处理数据中的缺失值,使得后续的分析和计算更加准确和可靠。