如何检测Pandas DataFrame全NaN行并将其替换为0?
解决方法
你已经通过df_june.isna().all(axis=1)拿到了全NaN行的布尔掩码,接下来直接用这个掩码定位目标行并赋值0即可,完全不需要按列操作:
# 获取全NaN行的布尔索引 all_nan_rows = df_june.isna().all(axis=1) # 将这些行的所有值替换为0 df_june.loc[all_nan_rows, :] = 0
补充说明
- 该操作仅修改完全由NaN组成的行,包含部分NaN的行不会被改动,精准匹配你的需求。
- 针对2000行8000列的大DataFrame,这个方法效率很高——布尔索引和
.loc赋值都是Pandas矢量化操作,远快于循环遍历。 - 若想先确认全NaN行的具体内容,可先执行:
print(df_june[all_nan_rows])
内容的提问来源于stack exchange,提问作者A Newbie
相关产品推荐
相关产品推荐

