如何将包含至少一个NaN值的行添加至新的pandas DataFrame
提取Pandas DataFrame中含NaN的行
嘿,这个需求其实用Pandas的内置方法就能轻松实现,我给你一步步说明:
步骤1:创建原DataFrame
首先我们先还原你的示例数据(如果已经有现成的DataFrame可以跳过这一步):
import pandas as pd import numpy as np # 构造原DataFrame df = pd.DataFrame({ 'Code': ['AA', 'BB', 'CC'], 'Sales': [1000, np.nan, 3020], 'Id': [23, 43, np.nan] })
步骤2:筛选含至少一个NaN的行
核心逻辑就是利用isna()和any()方法组合筛选:
# 提取包含至少一个NaN的行到新DataFrame nan_rows_df = df[df.isna().any(axis=1)]
代码解释:
df.isna():生成一个布尔型DataFrame,每个元素为True表示对应位置是NaN,否则为False。.any(axis=1):沿着行方向(axis=1)检查每行是否存在至少一个True,返回一个布尔Series,索引和原DataFrame一致。- 用这个布尔Series对原DataFrame做索引,就能精准提取出所有包含NaN的行,存入新的DataFrame
nan_rows_df中。
验证结果
打印nan_rows_df就能得到你预期的结果:
Code Sales Id 1 BB NaN 43.0 2 CC 3020.0 NaN
内容的提问来源于stack exchange,提问作者astroboy
相关产品推荐
相关产品推荐

