迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

填充 Pandas DataFrame 中的缺失值

作者:迹忆客 最近更新:2024/04/21 浏览次数:

有时,我们可能有一个缺失值的数据集。有很多方法可以使用某些方法来替换丢失的数据。

ffill()(前向填充)是替换 DataFrame 中缺失值的方法之一。此方法将 NaN 替换为先前的行或列值。


Pandas 中 ffill() 方法的语法

# Python 3.x
dataframe.ffill(axis, inplace, limit, downcast)

ffill() 方法采用四个可选参数:

  • axis 指定从何处填充缺失值。值 0 表示行,1 表示列。
  • inplace 可以是 True 或 False。True 指定在当前 DataFrame 中进行更改,而 False 表示创建具有填充值的新 DataFrame 的单独副本。
  • limit 指定要沿轴连续填充的最大缺失值数。
  • downcast 指定要为特定数据类型填充的值字典。

使用 Pandas 中的 ffill() 方法填充 DataFrame 中的缺失值

沿行轴填充缺失值

在下面的代码中,我们有一个缺失值用 None 或 NaN 表示的 DataFrame。我们已经显示了实际的 DataFrame,然后将 ffill() 方法应用于该 DataFrame。

默认情况下,ffill() 方法会沿着行/索引轴替换缺失值。NaN 将替换为该单元格上一行的值。

第一行在输出中仍然包含 NaN,因为没有前一行。

示例代码:

# Python 3.x
import pandas as pd

df = pd.DataFrame(
    {
        "C1": [2, 7, None, 4],
        "C2": [None, 2, None, 3],
        "C3": [2, None, 6, 5],
        "C4": [5, 2, 8, None],
    }
)
display(df)
df2 = df.ffill()
display(df2)

输出:

沿列轴填充缺失值

在这里,我们将指定 axis=1。它将通过观察相应单元格的前一列中的值来填充缺失值。

在输出中,除了两个值之外,所有值都被填充。因为我们没有列 1 的前一列,所以该值仍然是 NaN。

第 2 列中的值是 NaN,因为前一列中对应的单元格也是 NaN。

示例代码:

# Python 3.x
import pandas as pd

df = pd.DataFrame(
    {
        "C1": [2, 7, None, 4],
        "C2": [None, 2, None, 3],
        "C3": [2, None, 6, 5],
        "C4": [5, 2, 8, None],
    }
)
display(df)
df2 = df.ffill(axis=1)
display(df2)

输出:

使用 limit 限制要填充的连续 NaN 的数量

我们可以使用 limit 参数来限制沿行或列轴填充的连续缺失值的数量。

在下面的代码中,我们有实际的 DataFrame,其中最后三行有连续的 NaN。如果我们指定 limit=2,则不能超过两个连续的 NaN 可以沿行轴填充。

这就是为什么最后一行中的 NaN 仍未填充的原因。

示例代码:

# Python 3.x
import pandas as pd

df = pd.DataFrame(
    {
        "C1": [2, 7, None, 4],
        "C2": [4, None, None, None],
        "C3": [6, 6, 6, 5],
        "C4": [None, 2, 8, None],
    }
)
display(df)
df2 = df.ffill(axis=0, limit=2)
display(df2)

输出:

使用 inplace 填充原始 DataFrame 中的值

假设我们想要在原始 DataFrame 中进行更改,而不是在另一个 DataFrame 中复制具有填充值的 DataFrame。在这种情况下,我们可以使用值为 True 的 inplace 参数。

示例代码:

# Python 3.x
import pandas as pd

df = pd.DataFrame(
    {
        "C1": [2, 7, None, 4],
        "C2": [4, None, None, None],
        "C3": [6, 6, 6, 5],
        "C4": [None, 2, 8, None],
    }
)
display(df)
df.ffill(inplace=True)
display(df)

输出:

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Pandas 中加载 JSON 文件

发布时间:2024/04/21 浏览次数:97 分类:Python

本教程介绍了我们如何使用 pandas.read_json()方法将一个 JSON 文件加载到 Pandas DataFrame 中。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便