You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何排除指定列统计DataFrame行或目标列的空值数量?

解决DataFrame指定列空值统计问题

嗨,这问题很常见,我来帮你快速搞定!你想要统计仅First_Name和Age列的空值数量,排除Last_Name,原来的代码因为没做列筛选,所以统计了所有列,调整一下就好,给你两种实用方法:

方法1:直接指定要统计的目标列

先明确列出你需要统计的列,再执行空值统计操作,这样最直观:

import pandas as pd
import numpy as np  # 注意:pandas里的空值要用np.nan,不是你写的Null

# 先正确构建你的DataFrame(修正空值写法)
df = pd.DataFrame({
    'Last_Name': ['Smith', np.nan, np.nan,'Joy'], 
    'First_Name': ['John', np.nan, 'Bill', 'Tony'], 
    'Age': [35, 45, np.nan, 60]
})

# 只选择First_Name和Age列,再统计空值
null_counts = df[['First_Name', 'Age']].isnull().sum()
# 筛选出存在空值的列并降序排序
filtered_result = null_counts[null_counts > 0].sort_values(ascending=False)

print(filtered_result)

运行后会输出:

First_Name    1
Age           1
dtype: int64

方法2:排除不需要的列(适合列数量多的场景)

如果你的DataFrame列很多,不想一个个列出来,直接排除Last_Name列更高效:

# 去掉Last_Name列后再统计空值
null_counts = df.drop(columns=['Last_Name']).isnull().sum()
filtered_result = null_counts[null_counts > 0].sort_values(ascending=False)

print(filtered_result)

这个方法和上面的结果完全一致,适合列数较多的情况。

小提醒

你原来写的Null在pandas里不会被识别为空值,必须换成np.nan(需要先导入numpy),否则isnull()会把它当成普通字符串,统计结果就错啦!

内容的提问来源于stack exchange,提问作者Rahul

火山引擎 最新活动