繁体   English   中英

pandas groupby 过滤器 nunique

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM