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

如何根据Europe行的列值条件替换DataFrame中的非NaN值?

解决方案

可以通过两步向量化操作高效实现需求,避免循环提升性能:

  1. 筛选出Europe行值为0的目标列:
cols_to_modify = df.columns[df.loc['Europe'] == 0]
  1. 对目标列执行替换:保留None值,将所有非None值替换为0:
# 方法1:用numpy实现向量化替换
import numpy as np
df[cols_to_modify] = np.where(df[cols_to_modify].isna(), df[cols_to_modify], 0)

# 方法2:用pandas原生方法实现,写法更统一
df[cols_to_modify] = df[cols_to_modify].mask(df[cols_to_modify].notna(), 0)

执行结果验证

处理后得到的DataFrame与预期完全一致:

MondayTuesdayWednesdayThursdayFriday
Europe10001010
France5None034
Germany4None034
Spain10042

内容的提问来源于stack exchange,提问作者Lucas B. Bahadir

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 20:02:36