熊猫groupby过滤器

时间:2020-07-26 19:30:51

标签: python pandas pandas-groupby

到目前为止,这里有一个示例:

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个不同的条形码。这里发生了什么?并在示例中对要过滤的列进行了排序,但是需要吗?

2 个答案:

答案 0 :(得分:2)

我会推荐

gb= df.groupby(['date'])
df = df[gb['barcode'].transform('nunqiue').eq(1)]

答案 1 :(得分:1)

nunique是一种方法,而不是属性。修复:

gb.filter(lambda x: x['barcode'].nunique() ==1)