Pandas groupby对象过滤

cha*_*423 7 python indexing group-by conditional-statements pandas

我有一个熊猫数据帧

df.columns
Index([u’car_id’,u’color’,u’make’,u’year’)]
Run Code Online (Sandbox Code Playgroud)

我想创建一个新的FILTERABLE对象,它具有每个组的数量(颜色,品牌,年份);

grp = df[[‘color’,’make’,’year’]].groupby([‘color’,’make’,’year’]).size()
Run Code Online (Sandbox Code Playgroud)

这将返回这样的东西

color   make   year     count
black   honda  2011   416
Run Code Online (Sandbox Code Playgroud)

我希望能够过滤它,但是当我尝试这个时:

grp.filter(lambda x: x[‘color’]==‘black’)
Run Code Online (Sandbox Code Playgroud)

我收到此错误

TypeError:'function'对象不可迭代

如何利用'groupby'对象来过滤掉行?

jez*_*ael 10

我认为你需要添加reset_index然后输出DataFrame.上次使用boolean indexing:

df = df[['color','make','year']].groupby(['color','make','year'])
                                .size()
                                .reset_index(name='count')


df1 = df[df.color == 'black']
Run Code Online (Sandbox Code Playgroud)