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

如何在DataFrame中若其他列有缺失值则将Score列设为缺失值

解决方法

可以通过以下步骤实现需求:

  • 筛选出除Score列外的所有因子列
  • 检查每行是否存在缺失值
  • 将存在缺失值的行的Score设为缺失值

完整代码示例

import pandas as pd
import numpy as np

# 构造示例数据
df = pd.DataFrame({'Score': [71, 63, 23],
                   'Factor_1': [np.nan, '15', '23'],
                   'Factor_2': ['12', np.nan, '45'],
                   'Factor_3': ['3', '5', '7']})

# 找出其他列存在缺失值的行
mask = df.drop('Score', axis=1).isna().any(axis=1)

# 将对应行的Score设为缺失值
df.loc[mask, 'Score'] = np.nan

print(df)

输出结果

Score Factor_1 Factor_2 Factor_3
0    NaN      NaN       12        3
1    NaN       15      NaN        5
2   23.0       23       45        7

代码说明

  1. df.drop('Score', axis=1):移除Score列,只保留所有因子列
  2. .isna().any(axis=1):对每行检查是否有缺失值,返回布尔值Series(True表示该行存在缺失)
  3. df.loc[mask, 'Score'] = np.nan:根据布尔掩码,将符合条件的行的Score值替换为缺失值

内容的提问来源于stack exchange,提问作者Beginner in the house

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 00:20:24