Py学习  »  Python

Python:如何根据另一列元素来计算一列中的空单元格数?

akash • 4 年前 • 794 次点击  
df = pd.DataFrame({'user': ['Bob', 'Jane', 'Alice','Jane', 'Alice','Bob', 'Alice'], 
               'income': [40000, np.nan, 42000, 50000, np.nan, np.nan, 30000]})

    user   income
0    Bob  40000.0
1   Jane      NaN
2  Alice  42000.0
3   Jane  50000.0
4  Alice      NaN
5    Bob      NaN
6  Alice  30000.0

我想根据df中的“user”列找到“income”列中所有空值的计数? 我在尝试这样的事情: len(df[df.income.isnull().sum()])

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/53074
 
794 次点击  
文章 [ 2 ]  |  最新文章 4 年前
Mykola Zotko
Reply   •   1 楼
Mykola Zotko    4 年前

value_counts() :

df.loc[df['income'].isna(), 'user'].value_counts()

输出:

Jane     1
Bob      1
Alice    1
Name: user, dtype: int64
ansev
Reply   •   2 楼
ansev    4 年前

我会用 pdcrosstab

pd.crosstab(df['user'], df['income'].isnull())[True].sort_values(ascending = False)
#user
#Alice    1
#Bob      1
#Jane     1
#Name: True, dtype: int64

GroupBy.sum

df['income'].isnull().groupby(df['user']).sum().astype(int).sort_values(ascending=False)
#user
#Alice    1
#Bob      1
#Jane     1
#Name: income, dtype: int64

注意

True