如何删除DataFrame指定列中含空字符串的行?现有代码为何无效?
问题解答
你用的df.dropna(subset=[column_name], inplace=True)不是正确的实现方式。
原因很简单:dropna()方法默认只识别NaN、None这类Pandas定义的标准缺失值,而空字符串''属于普通的字符串值,不在它的处理范围内,所以运行这段代码后,包含空字符串的行不会被删除。
正确的处理方式分两种场景:
只需要删除空字符串的行:
# 方式1:直接筛选非空行 df = df[df[column_name] != ''] # 方式2:通过索引删除 df.drop(df[df[column_name] == ''].index, inplace=True)同时需要处理空字符串和标准缺失值(比如
NaN):
可以先把空字符串转换成标准缺失值,再用dropna处理:import pandas as pd # 将空字符串替换为pd.NA df[column_name] = df[column_name].replace('', pd.NA) # 此时dropna就能生效了 df.dropna(subset=[column_name], inplace=True)
内容的提问来源于stack exchange,提问作者marlon
相关产品推荐
相关产品推荐

