Pandas中如何识别、统计并删除未被isnull()检测到的空白值
解决DataFrame空白值(非NaN)的识别、统计与删除问题
问题原因
你遇到的空白值是空字符串("")或带空白字符的字符串,这类值不属于NaN,所以df.isnull().sum()统计不到。下面是具体处理方法:
1. 识别与统计空白值
统计纯空字符串数量
# 统计完全为空字符串的行数 empty_count = (df['TX_order'] == '').sum() print(f"纯空字符串数量:{empty_count}")
统计所有含空白字符的行(包括空格、制表符等)
如果空白值是带空格的字符串(比如" "),需要先去除前后空白再判断:
# 统计所有空白类值的行数(含空格、空字符串) blank_count = (df['TX_order'].astype(str).str.strip() == '').sum() print(f"所有空白类值数量:{blank_count}")
查看具体空白值的行
想定位这些行可以用布尔索引筛选:
# 筛选所有空白类值的行 blank_rows = df[df['TX_order'].astype(str).str.strip() == ''] print(blank_rows)
2. 删除空白值行
有两种常用方法:
方法一:先转NaN再删除
把空白值转为NaN,再用dropna()统一删除:
import numpy as np # 将空白类值转为NaN df['TX_order'] = df['TX_order'].mask(df['TX_order'].astype(str).str.strip() == '') # 删除含NaN的行 df_cleaned = df.dropna(subset=['TX_order'])
方法二:直接过滤
直接筛选出非空白的行,一步到位:
# 保留非空白的行(自动排除空字符串、空格字符串) df_cleaned = df[df['TX_order'].astype(str).str.strip() != '']
内容的提问来源于stack exchange,提问作者asmaa mahmoud
相关产品推荐
相关产品推荐

