Pandas如何识别Series中的nan值 泰坦尼克号数据集Embarked列筛选问题
问题根因
- pandas 读取数据时默认把空值识别为
numpy.nan(浮点型),而nan的核心特性是不等于任何值,包括它本身,因此你用== 'nan'或者== np.nan的匹配逻辑永远返回False,自然筛选不到目标行。
解决方案
方案1:单独筛选Embarked列的空值行
使用pandas内置的isna()空值判定方法即可精准匹配:
import pandas as pd df = pd.read_csv(<file_loc>, header=0) # 筛选Embarked列为空的行 embarked_nan_rows = df[df['Embarked'].isna()]
方案2:直接筛选取值非'S'/'C'/'Q'的行(匹配你的核心需求)
不用单独判断空值,用isin()方法取反即可自动覆盖空值场景:
# 筛选所有Embarked取值不在指定列表中的行 invalid_embarked_rows = df[~df['Embarked'].isin(['S', 'C', 'Q'])]
内容的提问来源于stack exchange,提问作者ha9u63a7
相关产品推荐
相关产品推荐

