具体来说,假设我有一个像这样的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
我怎么能用熊猫做到这一点?
答案 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