python pandas groupby过滤器

时间:2013-07-12 07:19:21

标签: python group-by pandas

具体来说,假设我有一个像这样的DataFrame:

appid  mac_id  count

1      a        1 

2      b        1

2      c        1

3      d        1

3      e        1

我也有:

mac_list = ['b', 'd', 'e']

我想在appid和每个群组过滤器mac_id上对此数据框进行分组,如果它在mac_list中。最后,每个组的总和(计数)。

对于此DataFrame,结果是:

appid   count

1         0

2         1

3         2

我怎么能用熊猫做到这一点?

1 个答案:

答案 0 :(得分:6)

>>> df = pd.DataFrame({"appid": [1,2,2,3,3], "mac_id": ['a', 'b', 'c', 'd', 'e'], "count": [1,1,1,1,1]})
>>> summer = lambda x: x[x["mac_id"].isin(mac_list)].sum()
>>> df.groupby("appid").apply(summer)["count"]
  18 
appid
1        0
2        1
3        2
Name: count, dtype: object