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

如何在DataFrame中当A列为NULL时将B列设为NULL?

如何在Pandas中根据A列的NULL值将对应行的B列设为NULL?

这是个很常见的数据清洗需求,用Pandas可以轻松实现,下面给你几种实用的方法,你可以根据自己的习惯选择:

方法1:使用loc直接定位赋值(最直观)

这种方法通过布尔索引定位到A列为空的行,然后直接将对应B列的值设为NaN(Pandas中代表NULL):

import pandas as pd
import numpy as np

# 创建示例DataFrame
df = pd.DataFrame({
    'A': [np.nan, 3, 5, np.nan],
    'B': [1, 4, 3, 2],
    'C': [2, 3, 1, 6]
})

# 核心处理代码
df.loc[df['A'].isnull(), 'B'] = np.nan

方法2:使用where函数(向量化操作)

where会保留满足条件的原始值,不满足的替换为指定值。这里我们保留A列不为空时的B值,否则替换为NaN:

df['B'] = df['B'].where(df['A'].notnull(), np.nan)

方法3:使用mask函数(和where逻辑相反)

mask的逻辑是满足条件时替换值,刚好和where相反,这里当A列为空时,把B列替换为NaN:

df['B'] = df['B'].mask(df['A'].isnull(), np.nan)

处理后的结果

执行任意一种方法后,打印DataFrame都会得到你期望的结果:

A    B  C
0  NaN  NaN  2
1  3.0  4.0  3
2  5.0  3.0  1
3  NaN  NaN  6

这些方法都是Pandas的向量化操作,处理大规模数据时效率很高,比逐行循环处理快得多。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:26:24