如何在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
代码说明
df.drop('Score', axis=1):移除Score列,只保留所有因子列.isna().any(axis=1):对每行检查是否有缺失值,返回布尔值Series(True表示该行存在缺失)df.loc[mask, 'Score'] = np.nan:根据布尔掩码,将符合条件的行的Score值替换为缺失值
内容的提问来源于stack exchange,提问作者Beginner in the house
相关产品推荐
相关产品推荐

