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日

相关文章

  • JsRender for index循环索引用法详解

    介绍 JsRender是一款强大的JavaScript模板引擎,它可以方便我们在网页中使用数据来渲染HTML模板。在JsRender中,我们可以使用#each来遍历数据,同时通过索引,我们可以轻松的获取每个遍历元素的编号。 语法 JsRender中的#each语法如下: {{#each data}} …渲染内容… {{/each}} 其中,data是…

    python 2023年6月13日
    00
  • 通过列值过滤Pandas DataFrame的方法

    Pandas DataFrame是一种非常强大的数据分析工具,通常我们需要对DataFrame进行筛选过滤,以便提取到我们需要的数据。本文将详细讲解如何通过列值过滤Pandas DataFrame的方法,包括使用loc、iloc、query、布尔索引等方法以及各种实例说明。 1. loc方法 loc方法是基于标签位置选择行的方法,其中布尔条件使用&(…

    python-answer 2023年3月27日
    00
  • Python pandas DataFrame基础运算及空值填充详解

    Python pandas DataFrame基础运算及空值填充详解 简介 Python pandas是一个开源的、高性能、易用的数据分析和处理工具,可用于数据的清洗、处理、统计、分析等场景。其中,pandas中的DataFrame是常用的数据结构,可用于各种复杂数据的处理。 本文主要介绍DataFrame的基础运算及空值填充。 DataFrame 基础运算…

    python 2023年5月14日
    00
  • Python中的pandas.crosstab()函数

    当需要对数据进行分类汇总时,可以使用Python中的pandas.crosstab()函数。该函数可以将两个或多个变量之间的关系转换为交叉类型表格。 以下是该函数的详细说明: pandas.crosstab()函数 crosstab(index, columns, values=None, rownames=None, colnames=None, aggf…

    python-answer 2023年3月27日
    00
  • Python 中 Pandas 文件操作和读取 CSV 参数详解

    以下是 “Python 中 Pandas 文件操作和读取 CSV 参数详解” 的攻略。 1. 概述 在Python中操作数据非常常见,Pandas作为Python数据分析的重要库,可以处理各种文件格式,其中包括CSV文件。Pandas提供了大量方便的方法和参数,使我们能够更加便捷地管理CSV文件。 2. Pandas 读取CSV文件 在使用Pandas库读取…

    python 2023年5月14日
    00
  • pandas 修改列名的实现示例

    下面是“pandas 修改列名的实现示例”的完整攻略。 实现方法 在 Pandas 中,修改列名有多种方法,其中较为常见的方法是使用 rename() 方法和直接赋值修改列名属性。 使用 rename() 方法 使用 rename() 方法可以非常方便地修改 Pandas 数据框的列名,方法原型如下: DataFrame.rename(mapper=None…

    python 2023年5月14日
    00
  • 详解python pandas 分组统计的方法

    下面是详解”Python Pandas分组统计的方法”的完整攻略: 1. pandas分组统计的基本原理 Pandas中使用groupby方法实现分组统计,基本思路是将数据按照指定的列或条件进行分组,然后对每个分组进行统计。具体步骤如下: 指定分组列或条件 使用groupby方法进行分组 对分组后的数据进行统计操作 2. 示例1-对数据进行分组 以titan…

    python 2023年5月14日
    00
  • 在Python Pandas中获取列的数据类型

    在Python Pandas中,我们可以通过dtypes属性获取数据框中各列数据的数据类型。此外,我们也可以使用info()方法来获取每列数据的数据类型和空值情况。 以下是一个示例数据框: import pandas as pd df = pd.DataFrame({‘col1’: [1, 2, 3], ‘col2’: [‘a’, ‘b’, ‘c’], ‘c…

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