Python如何删除director或cast列为NaN的DataFrame空值行?
解决方法
首先明确pandas.DataFrame.dropna()的两个核心判断逻辑:
how='any':只要指定的列里有任意一列为空值,就删除该行(这是dropna的默认参数)how='all':只有指定的所有列都为空值时,才删除该行
你需要的“删除director列为NaN或cast列为NaN的行”,刚好对应how='any'的逻辑。注意dropna默认返回新的DataFrame,不会修改原对象,必须赋值回去才会生效,正确代码如下:
# 方法1:直接用dropna实现,写法简洁 one = one.dropna(subset=['director', 'cast'], how='any')
如果需要更直观的逻辑表达,方便后续调整筛选条件,也可以用布尔索引实现:
# 方法2:布尔索引实现,逻辑更透明 one = one[~(one['director'].isna() | one['cast'].isna())]
- 代码中
one['director'].isna()用来判断director列是否为空 |是逻辑或运算符,匹配director为空或cast为空的行~是取反运算符,最终保留的就是两列都不为空的行
内容的提问来源于stack exchange,提问作者Financestudent
相关产品推荐
相关产品推荐

