Pandas DataFrame 填充列中的缺失值

pandas

1个回答

写回答

yangling111

2025-07-04 00:20

+ 关注

Pandas
Pandas

Pandas DataFrame 填充列中的缺失值

在数据分析和处理过程中,经常会遇到数据缺失的情况。缺失值可能会对后续的分析和模型建立产生不良影响,因此需要对缺失值进行处理。Pandas是Python中一个强大的数据分析库,提供了丰富的函数和方法来处理缺失值。本文将介绍如何使用Pandas DataFrame来填充列中的缺失值,并通过案例代码进行演示。

1. 检测缺失值

在填充缺失值之前,首先需要检测数据中的缺失值。Pandas提供了isnull()和notnull()函数来检测缺失值。isnull()函数会将缺失值返回为True,而notnull()函数会将非缺失值返回为True。可以通过这两个函数来获取数据中的缺失值。

下面是一个示例代码:

Python

import Pandas as pd

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

'B': [None, 6, 7, 8, 9],

'C': [10, 11, 12, 13, None]}

df = pd.DataFrame(data)

print(df.isnull())

输出结果如下:

A B C

0 False True False

1 False False False

2 True False False

3 False False False

4 False False True

可以看到,输出结果中为True的位置即为缺失值所在的位置。

2. 填充缺失值

填充缺失值是对缺失值进行替换的过程。Pandas提供了fillna()函数来填充缺失值。fillna()函数可以接受多种填充方式,例如用指定的值填充、用前一个非缺失值填充、用后一个非缺失值填充等。

下面是一个示例代码:

Python

import Pandas as pd

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

'B': [None, 6, 7, 8, 9],

'C': [10, 11, 12, 13, None]}

df = pd.DataFrame(data)

df_filled = df.fillna(0)

print(df_filled)

输出结果如下:

A B C

0 1.0 0.0 10.0

1 2.0 6.0 11.0

2 0.0 7.0 12.0

3 4.0 8.0 13.0

4 5.0 9.0 0.0

可以看到,缺失值被填充为0。

3. 使用前一个非缺失值填充

有时候,我们希望使用前一个非缺失值来填充缺失值。Pandas提供了ffill()函数来实现这个功能。ffill()函数会将缺失值用前一个非缺失值进行填充。

下面是一个示例代码:

Python

import Pandas as pd

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

'B': [None, 6, 7, 8, 9],

'C': [10, 11, 12, 13, None]}

df = pd.DataFrame(data)

df_filled = df.ffill()

print(df_filled)

输出结果如下:

A B C

0 1.0 NaN 10.0

1 2.0 6.0 11.0

2 2.0 7.0 12.0

3 4.0 8.0 13.0

4 5.0 9.0 13.0

可以看到,缺失值被前一个非缺失值进行填充。

4. 使用后一个非缺失值填充

与使用前一个非缺失值填充类似,有时候我们也希望使用后一个非缺失值来填充缺失值。Pandas提供了bfill()函数来实现这个功能。bfill()函数会将缺失值用后一个非缺失值进行填充。

下面是一个示例代码:

Python

import Pandas as pd

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

'B': [None, 6, 7, 8, 9],

'C': [10, 11, 12, 13, None]}

df = pd.DataFrame(data)

df_filled = df.bfill()

print(df_filled)

输出结果如下:

A B C

0 1.0 6.0 10.0

1 2.0 6.0 11.0

2 4.0 7.0 12.0

3 4.0 8.0 13.0

4 5.0 9.0 NaN

可以看到,缺失值被后一个非缺失值进行填充。

5. 使用列的均值填充

除了使用指定值、前一个非缺失值和后一个非缺失值进行填充外,我们还可以使用列的均值来填充缺失值。Pandas提供了mean()函数来计算列的均值,并通过fillna()函数来填充缺失值。

下面是一个示例代码:

Python

import Pandas as pd

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

'B': [None, 6, 7, 8, 9],

'C': [10, 11, 12, 13, None]}

df = pd.DataFrame(data)

df_filled = df.fillna(df.mean())

print(df_filled)

输出结果如下:

A B C

0 1.0 7.5 10.0

1 2.0 6.0 11.0

2 3.0 7.0 12.0

3 4.0 8.0 13.0

4 5.0 9.0 11.5

可以看到,缺失值被相应列的均值进行填充。

本文介绍了如何使用Pandas DataFrame来填充列中的缺失值。首先,我们通过isnull()和notnull()函数检测缺失值的位置。然后,通过fillna()函数可以使用指定值、前一个非缺失值、后一个非缺失值以及列的均值进行填充。这些方法可以根据实际情况选择不同的填充方式来处理缺失值,从而保证数据的完整性和准确性。

参考代码:

Python

import Pandas as pd

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

'B': [None, 6, 7, 8, 9],

'C': [10, 11, 12, 13, None]}

df = pd.DataFrame(data)

df_filled = df.fillna(df.mean())

print(df_filled)

希望本文对您理解Pandas DataFrame中填充列中的缺失值有所帮助。通过合适的填充方式,可以提高数据分析和模型建立的准确性和可靠性。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号