Python Pandas删除替换并提取其中的缺失值NaN(dropna,fillna,isnull)

Python Pandas删除、替换并提取其中的缺失值NaN

在Python的数据处理中,很可能会遇到包含缺失值的数据。处理缺失值是数据清洗的重要步骤之一。在Python Pandas中,可以使用dropna、fillna、isnull等函数来处理缺失值NaN。下面详细讲解这几个函数的用法。

dropna函数

dropna函数可以删除包含缺失值的行或列。其中参数axis表示操作方向,分别为0和1,默认为0。当axis=0时,删除行;当axis=1时,删除列。同时参数how表示删除方式,有两种取值,分别为any和all。当how=any时,删除包含任意一个缺失值的行/列;当how=all时,删除全为缺失值的行/列。具体用法如下:

import pandas as pd

# 构建一个包含缺失值的数据框
df = pd.DataFrame({'A': [1, 2, np.nan], 'B': [np.nan, 4, np.nan], 'C': [5, 6, np.nan]})
print("原始数据为:")
print(df)

# 删除包含缺失值的行
new_df1 = df.dropna(axis=0, how='any')
print("删除包含缺失值的行后的数据为:")
print(new_df1)

# 删除全为缺失值的行
new_df2 = df.dropna(axis=0, how='all')
print("删除全为缺失值的行后的数据为:")
print(new_df2)

# 删除包含缺失值的列
new_df3 = df.dropna(axis=1, how='any')
print("删除包含缺失值的列后的数据为:")
print(new_df3)

# 删除全为缺失值的列
new_df4 = df.dropna(axis=1, how='all')
print("删除全为缺失值的列后的数据为:")
print(new_df4)

上述代码中,我们首先构建了一个包含缺失值的数据框df,并对其进行了相关操作。经过上述代码的操作后,打印出如下结果:

原始数据为:
     A    B    C
0  1.0  NaN  5.0
1  2.0  4.0  6.0
2  NaN  NaN  NaN
删除包含缺失值的行后的数据为:
     A    B    C
1  2.0  4.0  6.0
删除全为缺失值的行后的数据为:
     A    B    C
0  1.0  NaN  5.0
1  2.0  4.0  6.0
2  NaN  NaN  NaN
删除包含缺失值的列后的数据为:
Empty DataFrame
Columns: []
Index: [0, 1, 2]
删除全为缺失值的列后的数据为:
Empty DataFrame
Columns: []
Index: [0, 1, 2]

从以上结果可以看出,我们分别对包含缺失值的行、全为缺失值的行、包含缺失值的列、全为缺失值的列进行了删除操作,并打印出了结果。

fillna函数

fillna函数可以将缺失值替换为给定的值。其中参数value表示替换的值,可以是常量或者字典类型数据。同时,参数method表示插值方法,可以使用ffill(前向填充)、bfill(后向填充)等方法对缺失值进行插值。具体用法如下:

import pandas as pd
import numpy as np

# 构建一个包含缺失值的数据框
df = pd.DataFrame({'A': [1, np.nan, 2], 'B': [3, np.nan, 4], 'C': [5, np.nan, 6]})
print("原始数据为:")
print(df)

# 替换缺失值为0
new_df1 = df.fillna(value=0)
print("缺失值替换为0后的数据为:")
print(new_df1)

# 前向填充
new_df2 = df.fillna(method='ffill')
print("前向填充后的数据为:")
print(new_df2)

上述代码中,我们分别对缺失值进行了替换、前向填充,并打印出了结果。经过上述代码的操作后,打印出如下结果:

原始数据为:
     A    B    C
0  1.0  3.0  5.0
1  NaN  NaN  NaN
2  2.0  4.0  6.0
缺失值替换为0后的数据为:
     A    B    C
0  1.0  3.0  5.0
1  0.0  0.0  0.0
2  2.0  4.0  6.0
前向填充后的数据为:
     A    B    C
0  1.0  3.0  5.0
1  1.0  3.0  5.0
2  2.0  4.0  6.0

从以上结果可以看出,我们分别对缺失值进行了替换、前向填充操作,并打印出了结果。

isnull函数

isnull函数可以提取数据中的缺失值,并返回一个布尔类型的数据框,True表示缺失值,False表示非缺失值。具体用法如下:

import pandas as pd
import numpy as np

# 构建一个包含缺失值的数据框
df = pd.DataFrame({'A': [1, np.nan, 2], 'B': [3, np.nan, 4], 'C': [5, np.nan, 6]})
print("原始数据为:")
print(df)

# 提取缺失值
new_df = df.isnull();
print("提取缺失值的结果为:")
print(new_df)

上述代码中,我们提取了数据框df中的缺失值,并打印出了结果。经过上述代码的操作后,打印出如下结果:

原始数据为:
     A    B    C
0  1.0  3.0  5.0
1  NaN  NaN  NaN
2  2.0  4.0  6.0
提取缺失值的结果为:
       A      B      C
0  False  False  False
1   True   True   True
2  False  False  False

从以上结果可以看出,我们成功提取了数据框df中的缺失值,并打印出了结果。

综上所述,我们可以通过dropna、fillna、isnull等函数删除、替换并提取其中的缺失值NaN,从而完成数据清洗的相关操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python Pandas删除替换并提取其中的缺失值NaN(dropna,fillna,isnull) - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • Pandas操作MySQL的方法详解

    这里提供一份Pandas操作MySQL的方法详解,具体步骤如下: 1. 安装必要的Python库 要使用Pandas操作MySQL,需要安装一些必要的Python库,包括: Pandas PyMySQL 可以通过以下命令安装: pip install pandas pip install pymysql 2. 连接MySQL数据库 在Python中,连接My…

    python 2023年5月14日
    00
  • 如何将Pandas数据框架写入多个Excel表

    当需要将Pandas数据框架写入多个Excel表时,可以使用Python的xlsxwriter库。xlsxwriter库提供了Worksheet类,支持创建和格式化Excel工作表。我们可以即使使用Worksheet类的add_table()方法将Pandas数据框架写入Excel。 以下是详细的步骤: 引入必要的Python库和模块,包括Pandas、xl…

    python-answer 2023年3月27日
    00
  • pandas 根据列的值选取所有行的示例

    下面是针对“pandas根据列的值选取所有行”的详细攻略: 1. 使用boolean mask 在pandas中,可以使用boolean mask来根据列的值选取所有行。具体的步骤如下: 使用pandas读取数据,并将其保存为DataFrame类型。 对于目标列,使用比较运算符生成boolean mask。 使用boolean mask过滤DataFrame…

    python 2023年5月14日
    00
  • 用Python中的Pandas绘制密度图

    下面我将为您详细讲解用Python中的Pandas绘制密度图的完整攻略。 一、什么是密度图? 密度图是在概率论中使用较多的一种单变量连续概率分布估计方式,它通过计算一个连续变量的概率密度函数来描述该变量的分布情况。在统计学中,将概率密度函数图画出来的图像被称为密度曲线。 二、Pandas中绘制密度图的步骤 接下来,我们将学习如何使用Pandas绘制密度图,主…

    python-answer 2023年3月27日
    00
  • python中pandas常用命令详解

    Python中pandas常用命令详解 什么是Pandas Pandas是基于Numpy的一个数据分析处理库,是专门为了解决数据分析任务而创建的。相比于Numpy同样能处理数值数据的数组和矩阵,Pandas可处理统计数据,序列等非数值数据。 Pandas的优势 它能为我们扩展时间序列的功能,处理常用的金融和统计数据。 提供了运算效率高的data frame数…

    python 2023年5月14日
    00
  • 在Pandas数据框架中用最新的正值替换负值

    在 Pandas 数据框架中,我们可以使用 where 函数来替换负数为最新的正值。下面是详细的步骤: 导入 Pandas 模块并读取数据 import pandas as pd data = pd.read_csv(‘data.csv’) 将数据框架中的负数替换为 NaN data = data.where(data >= 0) 该语句将数据框架 d…

    python-answer 2023年3月27日
    00
  • 读Json文件生成pandas数据框详情

    读取Json文件并转换为pandas数据框可以分为以下几个步骤: 1. 导入依赖库 使用pandas库读取json文件需要先导入pandas库。 import pandas as pd 2. 读取Json文件 使用pandas库的read_json()函数读取json文件,该函数读取后返回一个DataFrame对象。 df = pd.read_json(‘e…

    python 2023年5月14日
    00
  • 在Python Pandas中查找某一列的指数

    在Python Pandas中,可以使用DataFrame的columns属性来找到列名,然后使用get_loc方法来查找列的索引值(也就是指数)。 具体步骤如下: 首先,导入pandas模块并创建一个示例DataFrame,如下所示: import pandas as pd df = pd.DataFrame({ ‘Name’: [‘Alice’, ‘Bo…

    python-answer 2023年3月27日
    00
合作推广
合作推广
分享本页
返回顶部