📌  相关文章
📜  从 pandas 列中清除 nas - Python (1)

📅  最后修改于: 2023-12-03 15:36:14.658000             🧑  作者: Mango

从 pandas 列中清除 nas - Python

Pandas 是一个非常流行的 Python 数据分析库, pandas 拥有很多的数据处理功能, 本文主要介绍如何从 pandas 列中清除 nas。

在 Pandas 中,NaN(Not A Number) 或 None 通常称为 null 值,缺失值通常标识为 NA(Not Available)。

在 Pandas 中清除 nas 有两种方法:

  1. 使用 DataFrame 或 Series 中的 dropna() 方法, 可以清除包含一行或一列中的任何 NaN 或 None 值的行或列 格式如下:
df.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
  • axis : {0 or ‘index’, 1 or ‘columns’}, 默认 0, 用于指定删除行/列。
  • how : {‘any’, ‘all’}, 默认‘any’, 用于指定删除包含任何/所有na的行/列。
  • thresh : int, 默认 None, 用于指定保留至少有thresh个非na值的行/列。
  • subset : array-like, 默认 None,用于指定包含特定列的数据集,以处理特定列的 NA 值。
  • inplace : bool, 默认 False,用于指定是否直接修改原始数据DataFrame。

示例代码:

import pandas as pd

data = {'A': [1, 2, 3, None, 5], 'B': [6, 7, 8, None, 10], 'C': [11, 12, 13, 14, 15]}

df = pd.DataFrame(data)
print(df)
print(df.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False))

输出结果:

      A     B   C
0  1.0   6.0  11
1  2.0   7.0  12
2  3.0   8.0  13
3  NaN   NaN  14
4  5.0  10.0  15

     A    B   C
0  1.0  6.0  11
1  2.0  7.0  12
2  3.0  8.0  13
4  5.0  10.0  15
  1. 使用 fillna() 方法将缺失值填充为特定值,可以填充单个列或整个数据帧, 格式如下:
df.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)
  • value : 填充缺失值的标量、字典、序列或 DataFrame。如果为序列,则必须替换NaN的每个索引值。
  • method : {‘backfill’, ‘bfill’, ‘pad’,‘ffill’, None}, 默认 None, 用于指定插值方法。默认为 None, 表示 NaN 值用指定的值填充。
  • axis : {0 or ‘index’, 1 or ‘columns’}, 默认None, 用于指定填充 axis 的方向。
  • inplace : bool, 默认 False, 定义是否更改原始DataFrame。
  • limit : int, 默认 None, 用于填充连续的NaN 值的最大数量。
  • downcast : dict, 默认 None, 用于在填充缺失值时降低 DataFrame 的内存使用。

示例代码:

import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, 2, np.nan, 4], 'B': [5, np.nan, np.nan, 8], 'C': ['a', 'b', np.nan, 'c']})
print(df.fillna(value=0))

输出结果:

     A    B  C
0  1.0  5.0  a
1  2.0  0.0  b
2  0.0  0.0  0
3  4.0  8.0  c

以上就是从 pandas 列中清除 nas 的两种方法,其中 dropna() 方法是删除包含 NaN 或 None 值的行或列,fillna() 方法是将缺失值填充为特定值。两种方法根据不同的数据处理需求,选择相应的算法即可。