BBQ*_*cus 5 python pandas data-science
我想知道是否有可能在对满足条件的另一列的值进行计数时对一列进行分组。因为我的数据集有点奇怪,所以我创建了一个类似的数据集:
import pandas as pd
raw_data = {'name': ['John', 'Paul', 'George', 'Emily', 'Jamie'],
'nationality': ['USA', 'USA', 'France', 'France', 'UK'],
'books': [0, 15, 0, 14, 40]}
df = pd.DataFrame(raw_data, columns = ['name', 'nationality', 'books'])
Run Code Online (Sandbox Code Playgroud)
说,我想按国籍分组,并计算该国没有任何书籍(书籍== 0)的人数。
因此,我希望输出类似以下内容:
nationality
USA 1
France 1
UK 0
Run Code Online (Sandbox Code Playgroud)
我使用过滤器,agg尝试了groupby的大多数变体,但似乎什么也没用。
在此先感谢,BBQuercus :)
IIUC:
df.books.eq(0).astype(int).groupby(df.nationality).sum()
nationality
France 1
UK 0
USA 1
Name: books, dtype: int64
Run Code Online (Sandbox Code Playgroud)