Python pandas处理缺失值方法详解(dropna、drop、fillna)

Python pandas处理缺失值方法详解

在pandas中,处理缺失值是十分重要的操作,可以利用Pandas提供的dropna()、fillna()、drop()等函数进行处理。这篇文章,将详细介绍这些函数的用法和示例。

一、dropna()函数

dropna函数可以删除存在缺失值的行或列,其常用的参数有两个(axis,how)。

1. axis参数

axis表示操作的方向,axis=0时,表示删除含有缺失值的行,axis=1时,表示删除含有缺失值的列。

2. how参数

  • how='any' : 只要有缺失值出现就删除该行或列。
  • how='all' : 所有的值都缺失才删除该行或列。

下面是一个简单的示例:

import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, 2, np.nan, 4], 'B': [5, np.nan, 7, 8], 'C': [9, 10, 11, 12]})
print(df)

# 删除含有缺失值的行
df_deleted_row = df.dropna(axis=0, how='any')
print(df_deleted_row)

# 删除含有缺失值的列
df_deleted_col = df.dropna(axis=1, how='any')
print(df_deleted_col)

输出结果为:

     A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
2  NaN  7.0  11
3  4.0  8.0  12
     A    B   C
0  1.0  5.0   9
3  4.0  8.0  12
    C
0   9
1  10
2  11
3  12

二、fillna()函数

fillna函数可以填充缺失值。其常用的参数有两个(value,method)。

1. value参数

value表示指定填充的值,可以是标量,如0、1等,也可以是与原有值同索引的Series型数据。

下面是一个示例:

import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, 2, np.nan, 4], 'B': [5, np.nan, 7, 8], 'C': [9, 10, 11, 12]})
print(df)

# 填充所有缺失值为0
df_fill_0 = df.fillna(value=0)
print(df_fill_0)

# 填充指定列缺失值为指定值
df_fill_col = df.fillna(value={'B':0, 'C':1})
print(df_fill_col)

输出结果为:

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

2. method参数

method表示插值方式,这里主要介绍两种方法:ffill和bfill,前者表示用前一个非缺失值来填充,后者则是用后一个非缺失值填充。

import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, 2, np.nan, 4], 'B': [5, np.nan, 7, 8], 'C': [9, 10, 11, 12]})
print(df)

# ffill插值(往前填充)
df_fill_ffill = df.fillna(method='ffill')
print(df_fill_ffill)

# bfill插值(往后填充)
df_fill_bfill = df.fillna(method='bfill')
print(df_fill_bfill)

输出结果为:

     A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
2  NaN  7.0  11
3  4.0  8.0  12
     A    B   C
0  1.0  5.0   9
1  2.0  5.0  10
2  2.0  7.0  11
3  4.0  8.0  12
     A    B   C
0  1.0  5.0   9
1  2.0  7.0  10
2  4.0  7.0  11
3  4.0  8.0  12

三、drop()函数

drop函数也可以删除含有缺失值的行或列。与dropna不同的是,drop函数强调对原数据集进行修改。

import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, 2, np.nan, 4], 'B': [5, np.nan, 7, 8], 'C': [9, 10, 11, 12]})
print(df)

# 原数据集删除含有缺失值的行
df.dropna(axis=0, how='any', inplace=True)
print(df)

# 原数据集删除含有缺失值的列
df.dropna(axis=1, how='any', inplace=True)
print(df)

输出结果为:

     A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
2  NaN  7.0  11
3  4.0  8.0  12
     A    B   C
0  1.0  5.0   9
3  4.0  8.0  12
     C
0   9
1  10
2  11
3  12

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python pandas处理缺失值方法详解(dropna、drop、fillna) - Python技术站

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

相关文章

  • python基础pandas的drop()用法示例详解

    Python基础Pandas的drop()用法示例详解 简介 在数据分析过程中,通常需要进行数据处理,其中删除不需要的行或列是常见的操作。Pandas库是Python数据分析的重要工具之一,提供了丰富的数据处理方法。其中,drop()是Pandas的重要方法之一,用户可以使用该函数来删除DataFrame或Series中不需要的行或列。 drop方法的语法 …

    python 2023年5月14日
    00
  • 在pandas数据框架中添加具有常量值的列

    在Pandas数据框架中添加具有常量值的列,可以按照以下步骤进行: 导入Pandas库并创建数据框架 首先,我们需要导入Pandas库,并创建一个数据框架。下面的示例中,我们创建一个包含三个字段的数据框架,其中每个字段包含4个元素: import pandas as pd df = pd.DataFrame({ ‘Name’: [‘Alice’, ‘Bob’…

    python-answer 2023年3月27日
    00
  • 使用Pandas实现MySQL窗口函数的解决方法

    使用Pandas实现MySQL窗口函数的解决方法可以分为以下几个步骤: 步骤一:连接到MySQL数据库 首先,需要使用Pandas提供的函数pandas.read_sql()连接到MySQL数据库,并将结果存储在一个Pandas DataFrame中,例如: import pandas as pd import pymysql # 连接数据库 conn = …

    python 2023年5月14日
    00
  • 如何在使用Pandas读取csv文件时跳过行

    在使用 Pandas 读取 CSV 文件时,我们经常需要跳过一些行,例如 CSV 文件的头部描述信息。在 Pandas 中,我们可以使用 skiprows 参数来指定需要跳过的行数。 以下是跳过 CSV 文件前两行的示例代码: import pandas as pd # 读取 CSV 文件,跳过前两行 df = pd.read_csv(‘example.cs…

    python-answer 2023年3月27日
    00
  • Python pyecharts Line折线图的具体实现

    下面是Python pyecharts Line折线图的具体实现攻略: 简介 pyecharts 是一个基于 Echarts 实现的图表库,它支持很多种图表类型,包括柱状图、折线图、饼图、散点图等等。而 pyecharts 的优点在于简单易用,所需要的准备工作很少,只需要几行代码就可以生成一个漂亮的图表。 准备工作 在使用 pyecharts 之前,需要安装…

    python 2023年6月13日
    00
  • python pandas修改列属性的方法详解

    下面是关于“Python pandas修改列属性的方法详解”的完整攻略。 1. 简介 在Python pandas 模块中,数据处理的一个重要操作是修改DataFrame表格的列属性。例如修改列名、数据类型、以及添加新的列。这里我们将介绍几种Python pandas中修改列属性的方法。 2. 修改列名 2.1 第一种方法:使用rename()函数 使用re…

    python 2023年5月14日
    00
  • 在Pandas中为数据框架添加列名

    在Pandas中,我们可以使用 DataFrame 类来创建数据框架,并可以为数据框架添加列名。以下是在Pandas中为数据框架添加列名的完整攻略,包括实例说明: 1. 创建数据框架 首先,我们需要创建一个数据框架,可以使用 pandas.DataFrame() 函数: import pandas as pd data = {‘name’: [‘Alice’…

    python-answer 2023年3月27日
    00
  • Python使用Matplotlib绘制三维散点图详解流程

    下面是详细讲解Python使用Matplotlib绘制三维散点图详解流程的完整攻略。 1. Matplotlib绘制三维散点图的基本思路 Matplotlib是Python中常用的一个绘图框架,可以绘制多种类型的图形,包括二维和三维的图形。其中,绘制三维散点图需要使用mpl_toolkits.mplot3d库。其基本流程如下: 导入相关的库:numpy、ma…

    python 2023年6月13日
    00
合作推广
合作推广
分享本页
返回顶部