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

yizhihongxing

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日

相关文章

  • 串联Pandas数据框架的两列数据

    串联Pandas数据框架的两列数据,需要使用Pandas的concat函数(即concatenate的缩写,意为连接)。具体步骤如下: 选取要串联的两列数据(或者多列)。 假设我们有以下两个数据框架df1和df2: import pandas as pd import numpy as np df1 = pd.DataFrame({‘A’: [‘A0’, ‘…

    python-answer 2023年3月27日
    00
  • 如何在Pandas中计算加权平均数

    计算加权平均数可以使用Pandas中的weighted_avg()函数,该函数主要用于计算加权平均数。 详细步骤如下: 从Pandas库中导入Series和weighted_avg函数: python import pandas as pd from pandas import Series from pandas.api import types from…

    python-answer 2023年3月27日
    00
  • Pandas数据结构之Series的使用

    Pandas是Python语言中非常常用的数据处理和数据分析的库,其提供的数据结构包括了Series和DataFrame。本文我们将着重介绍Series这个数据结构的使用方法。 一、什么是Series Series是一个带索引标签的一维数组,可以用来存储任意类型的相似或不相似的数据类型。在这个数据结构中,标签通常称为索引,它们对应于每个特定数据点。 二、创建…

    python 2023年5月14日
    00
  • 用Pandas和Seaborn进行KDE绘图可视化

    Pandas是Python数据分析的重要工具,Seaborn是建立在matplotlib之上的一个数据可视化库,它非常适合用于统计数据分析和探索性数据分析(EDA)。 下面,我们来详细讲解使用Pandas和Seaborn进行KDE(核密度估计)绘图可视化的步骤。 导入相关库 在进行绘图之前,我们必须需要先导入相关的库。 import pandas as pd…

    python-answer 2023年3月27日
    00
  • 删除pandas中产生Unnamed:0列的操作

    Sure,删除pandas中生成的Unnamed: 0列的操作比较简单,可以按照以下步骤操作: 1. 加载数据并检查是否有Unnamed: 0列 首先,使用pandas中的read_csv方法或其它读取数据的方法加载数据。然后,检查数据集是否存在Unnamed: 0列。可以使用.columns查看数据集中所有列的名称。示例代码如下: import panda…

    python 2023年5月14日
    00
  • 检查Pandas数据框架中的NaN

    在 Pandas 中,NaN 是指 Not a Number,代表缺失值或无效值。检查 Pandas 数据框架中的 NaN 是数据预处理中重要的一步。下面介绍如何进行完整的 NaN 检查: 1. 查看数据框架中的缺失值 可以使用 isnull() 或 isna() 函数查看数据框架中缺失值的情况。这两个函数的作用相同,都返回一个布尔型数组,表示数据框架中缺失…

    python-answer 2023年3月27日
    00
  • Python 绘制桑基图全面解析

    Python 绘制桑基图全面解析 桑基图(Sankey Diagram),也称桑基能量平衡图、桑基能流图,用于显示元素之间的流动。在此,我将向您介绍如何使用Python绘制桑基图的方法。 安装matplotlib库 在进行桑基图绘制之前,我们首先需要安装Matplotlib库,它是Python中广泛使用的绘图库。 您可以在命令行中使用下面的命令进行安装: p…

    python 2023年6月13日
    00
  • 如何在Pandas中把一个庞大的文件加载成小块

    加载庞大的文件时,Pandas提供了一种称为分块(chunking)的技术,它可以将大型数据集划分成若干个小块进行读取和处理。下面是将一个CSV文件分块加载为小块的代码示例: import pandas as pd chunk_size = 1000 # 设定每个小块的行数 csv_file_path = ‘data.csv’ # CSV文件路径 chunk…

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