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)