Python 2.7(iPython Notebook)提取特定列含NaN行的代码求助
如何查看特定列含NaN值的所有行
嗨,作为数据科学新手,能想到先排查NaN再填充真的太聪明啦!这能帮你更精准地处理数据,避免盲目填充带来的问题~ 假设你用的是pandas(数据清洗的常用工具),下面给你几种实用的方法:
1. 查看单列含NaN的所有行
比如你想检查married列的NaN行,直接用布尔索引过滤就行:
import pandas as pd # 先加载你的数据集(假设是CSV格式,根据实际格式调整) df = pd.read_csv('你的数据集文件名.csv') # 筛选married列存在NaN的行 nan_married_rows = df[df['married'].isna()] print(nan_married_rows)
如果你的pandas版本比较旧(Python2.7对应的pandas版本可能偏老),isna()可能报错,换成isnull()就可以,功能完全一样:
nan_married_rows = df[df['married'].isnull()]
2. 查看多列含NaN的所有行
要是你想同时检查gender和credit_history这两列中任意一列有NaN的行,可以这么写:
nan_multi_cols_rows = df[df[['gender', 'credit_history']].isna().any(axis=1)] print(nan_multi_cols_rows)
这里的any(axis=1)表示只要该行的指定列里有一个NaN,就保留这一行。如果想找所有指定列都有NaN的行,把any换成all就行。
3. 先快速统计NaN数量(可选)
在查看具体行之前,你可以先看看目标列有多少个NaN,心里有数:
# 统计married列的NaN数量 print("married列的NaN数量:{}".format(df['married'].isna().sum()))
等你看完这些NaN行的具体情况,就可以针对性地用fillna()填充了。比如如果发现married列的NaN大多对应未婚情况,就可以:
df['married'].fillna('N', inplace=True)
要是想根据其他列的逻辑填充(比如结合gender列的信息),也可以进一步写自定义逻辑处理~
内容的提问来源于stack exchange,提问作者uharsha33
相关产品推荐
相关产品推荐

