You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas DataFrame中移除孤立值(替换为None)

移除Pandas DataFrame中的孤立值(前后均为None的数值)

需求:将DataFrame中前后行均为None的数值替换为None,即移除这类孤立值。

初始DataFrame:

列A列B
1
11
11
1
11
11

目标DataFrame:

列A列B
1
1
1
1
11
11

实现代码

利用Pandas的shift()方法可快速定位并处理孤立值,代码简洁高效:

import pandas as pd
import numpy as np

# 构建初始DataFrame
df = pd.DataFrame({
    '列A': [np.nan, 1, np.nan, 1, 1, 1, 1],
    '列B': [1, 1, np.nan, 1, np.nan, 1, 1]
})

# 生成掩码:标记当前非空、前后均为空的位置
mask = df.notna() & df.shift(1).isna() & df.shift(-1).isna()

# 将掩码标记的位置替换为None(即NaN)
df = df.mask(mask)

代码说明

  • df.notna():筛选当前单元格不为空的位置
  • df.shift(1).isna():筛选当前单元格的前一行为空的位置
  • df.shift(-1).isna():筛选当前单元格的后一行为空的位置
  • 三者取交集得到的掩码,就是需要替换的孤立值位置,用mask()方法将这些位置设为NaN(对应需求中的None)

内容的提问来源于stack exchange,提问作者user23457300

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 14:00:10