df.groupby(['name','cat'])['valtocount'].agg('count')
通过上面的我得到了以下multindex df:
name cat count
abc a 1
b 1
def a 1
c 2
我只想保留计数标准为> 0的名称 你们有什么建议吗?
答案 0 :(得分:1)
将GroupBy.transform
与In [2]: x
Out[2]: 0 0
1 1
2 4
3 9
或SeriesGroupBy.nunique
一起使用,并按boolean indexing
进行过滤:
std
s = df.groupby(['name','cat'])['valtocount'].agg('count')
s1 = s[s.groupby(level=0).transform('std') > 0]
print (s1)
name cat
def a 1
c 2
Name: valtocount, dtype: int64