如何使用pandas统计DataFrame中包含空值或N/A值的行数量
Pandas统计含任意空白/缺失值的行总数方案
你要的功能可以分两步实现,先把表中的空白字符串统一识别为空值,再按行判断是否存在空值求和即可。
完整代码示例
import pandas as pd # 构造你示例中的测试数据 data = { "Item": ["", "Second", "Third."], "Company": ["A", "B", ""], "Branch": [1, 2, pd.NA], "Price": [5.0, 8.0, 9.0] } df = pd.DataFrame(data) # 1. 将所有空白字符串(含全空格内容)替换为pandas可识别的空值 df = df.replace(r"^\s*$", pd.NA, regex=True) # 2. 统计存在任意空值的行总数 na_row_count = df.isna().any(axis=1).sum() print(na_row_count) # 输出结果为2,和你示例要求一致 # 如果需要新增示例中的Uncompleted标识列,加这行即可 df["Uncompleted"] = df.isna().any(axis=1)
代码说明
- 第一步的正则替换是为了把手动输入的空白内容、只有空格的内容都转成pandas标准空值,避免这类空白被
isna()漏判 isna()会返回和原表结构一致的布尔矩阵,单元格为空值时返回True,否则返回Falseany(axis=1)指定按行做逻辑或判断,只要该行有一个True就返回Truesum()会自动把布尔值的True当作1、False当作0求和,得到的结果就是存在缺失值的行总数
内容的提问来源于stack exchange,提问作者Noura
相关产品推荐
相关产品推荐

