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

如何在pandas中基于其他列规则替换DataFrame NaN并同步修改对应列值

实现方法

你可以通过布尔索引定位目标行后分别修改两列的值,逻辑直观且性能高效:

import pandas as pd
# 构造示例DataFrame
df = pd.DataFrame({'a': [1,None,3], 'b': [5,10,15]})

# 定位a列为NaN的行
na_mask = df['a'].isna()
# 替换a列NaN为对应行b列的平方
df.loc[na_mask, 'a'] = df.loc[na_mask, 'b'] ** 2
# 将对应行的b列设为NaN
df.loc[na_mask, 'b'] = pd.NA

运行后输出的df和你的预期结果完全一致:

a     b
0    1.0   5.0
1  100.0  <NA>
2    3.0  15.0

如果需要a列为整型、b列支持整型空值,可以额外加两行类型转换:

df['a'] = df['a'].astype(int)
df['b'] = df['b'].astype('Int64')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 16:18:02