关键词

对Pandas DataFrame缺失值的查找与填充示例讲解

下面我为你介绍一篇详细讲解“对PandasDataFrame缺失值的查找与填充示例讲解”的攻略。本攻略将从以下几个方面进行讲解:

  1. 缺失值的定义及常见原因;
  2. 查找缺失值的方法;
  3. 填充缺失值的方法。

1. 缺失值的定义及常见原因

缺失值是指缺少特定数据的现象。在数据处理中,由于数据输入、处理出错或某些数据不可用等原因,会出现缺失值。常见的原因包括:

  • 数据采集或传输错误;
  • 隐私问题,数据不允许公开;
  • 抽样调查中无法确定全部样本;
  • 实验和观察中某些数据无法测量。

2. 查找缺失值的方法

Pandas提供了多种查找缺失值的方法,包括:

  • isna()方法:用于查找DataFrame中的缺失值,返回一个布尔型DataFrame,标记数据是否为缺失值;
  • notna()方法:用于查找DataFrame中的非缺失值,返回一个布尔型DataFrame,标记数据是否为非缺失值;
  • dropna()方法:用于删除缺失值所在的行或列;
  • fillna()方法:用于填充DataFrame中的缺失值。

下面是一些示例说明:

示例1

import pandas as pd
import numpy as np

# 创建一个包含缺失值的DataFrame
df = pd.DataFrame({'A': [1, 2, np.nan, 4],
                   'B': [5, np.nan, 7, np.nan],
                   'C': [8, 9, 10, 11]})
# 使用isna()方法查找缺失值
print(df.isna())

输出结果如下:

       A      B      C
0  False  False  False
1  False   True  False
2   True  False  False
3  False   True  False

示例说明:使用isna()方法查找DataFrame中的缺失值,返回一个布尔型DataFrame,标记数据是否为缺失值。输出的结果中,缺失值被标记为True,非缺失值被标记为False。

示例2

import pandas as pd
import numpy as np

# 创建一个包含缺失值的DataFrame
df = pd.DataFrame({'A': [1, 2, np.nan, 4],
                   'B': [5, np.nan, 7, np.nan],
                   'C': [8, 9, 10, 11]})
# 使用dropna()方法删除缺失值所在的行
df.dropna(axis=0, inplace=True)
print(df)

输出结果如下:

     A    B   C
0  1.0  5.0   8
2  NaN  7.0  10

示例说明:使用dropna()方法删除DataFrame中缺失值所在的行或列。本示例中将缺失值所在的行删除,并用inplace=True将修改直接应用到原DataFrame中。

3. 填充缺失值的方法

除了删除缺失值外,还可以使用fillna()方法填充DataFrame中的缺失值。fillna()方法有多种填充方式,比如使用一个指定的数值或某列的平均值、中位数等。

示例3

import pandas as pd
import numpy as np

# 创建一个包含缺失值的DataFrame
df = pd.DataFrame({'A': [1, 2, np.nan, 4],
                   'B': [5, np.nan, 7, np.nan],
                   'C': [8, 9, 10, 11]})
# 使用fillna()方法将缺失值填充为0
df.fillna(0, inplace=True)
print(df)

输出结果如下:

     A    B   C
0  1.0  5.0   8
1  2.0  0.0   9
2  0.0  7.0  10
3  4.0  0.0  11

示例说明:使用fillna()方法将DataFrame中的缺失值填充为指定的数值0,结果返回一个新的DataFrame对象。用inplace=True将修改直接应用到原DataFrame中。

示例4

import pandas as pd
import numpy as np

# 创建一个包含缺失值的DataFrame
df = pd.DataFrame({'A': [1, 2, np.nan, 4],
                   'B': [5, np.nan, 7, np.nan],
                   'C': [8, 9, 10, 11]})
# 使用fillna()方法将缺失值填充为B列的平均值
df.fillna(df['B'].mean(), inplace=True)
print(df)

输出结果如下:

     A    B   C
0  1.0  5.0   8
1  2.0  6.0   9
2  6.0  7.0  10
3  4.0  6.0  11

示例说明:使用fillna()方法将DataFrame中的缺失值填充为B列的平均值,结果返回一个新的DataFrame对象。用inplace=True将修改直接应用到原DataFrame中。

本文链接:http://task.lmcjl.com/news/14559.html

展开阅读全文