[英]pandas groupby filter nunique
到目前为止,我所拥有的示例如下:
df = pd.DataFrame({"barcode": [1,2,2,3,3,4, 4, 4], "date": ['today', 'today', 'tomorrow', 'tomorrow', 'tomorrow', 'yesterday', 'yesterday' ,'yesterday'], "info": [40,20,10,15,17,19, 21, 23]})
gb= df.groupby(['date'])
gb.filter(lambda x: x['barcode'].nunique!=1)
返回:
Empty DataFrame
Columns: [barcode, date, info]
Index: []
在我过滤后应该只保留“昨天”,因为“今天”组中有 2 个不同的条形码,“明天”组中有 2 个不同的条形码。 这里发生了什么? 在示例中,要过滤的列已排序,但是否需要?
我会推荐
gb= df.groupby(['date'])
df = df[gb['barcode'].transform('nunqiue').eq(1)]
nunique
是一种方法,而不是属性。 使固定:
gb.filter(lambda x: x['barcode'].nunique() ==1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.