gpt4 book ai didi

python - 在 groupby pandas 之后过滤行

转载 作者:太空狗 更新时间:2023-10-29 22:15:03 25 4
gpt4 key购买 nike

我在 Pandas 中有一张 table :

import pandas as pd

df = pd.DataFrame({
'LeafID':[1,1,2,1,3,3,1,6,3,5,1],
'pidx':[10,10,300,10,30,40,20,10,30,45,20],
'pidy':[20,20,400,20,15,20,12,43,54,112,23],
'count':[10,20,30,40,80,10,20,50,30,10,70],
'score':[10,10,10,22,22,3,4,5,9,0,1]
})

LeafID count pidx pidy score
0 1 10 10 20 10
1 1 20 10 20 10
2 2 30 300 400 10
3 1 40 10 20 22
4 3 80 30 15 22
5 3 10 40 20 3
6 1 20 20 12 4
7 6 50 10 43 5
8 3 30 20 54 9
9 5 10 45 112 0
10 1 70 20 23 1

我想做一个 groupby 然后过滤 pidx 出现次数大于 2 的行。

即过滤pidx为10和20的行。

我尝试使用 df.groupby('pidx').count() 但它没有帮助我。同样对于这些行,我必须执行 0.4*count+0.6*score。

期望的输出是:

LeafID    count       pidx     pidy    final_score
1 10 10 20
1 20 10 20
1 40 10 20
6 50 10 43
1 20 20 12
3 30 20 54
1 70 20 23

最佳答案

这是在执行 groupby 之后直接应用过滤器。在您提供的数据中,pidx 的值为 20 只出现了两次,因此被过滤掉了。

df.groupby('pidx').filter(lambda x: len(x) > 2)

LeafID count pidx pidy
0 1 10 10 20
1 1 20 10 20
3 1 40 10 20
7 6 50 10 43

关于python - 在 groupby pandas 之后过滤行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41821430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com