gpt4 book ai didi

python:提取列值大于3的行

转载 作者:太空宇宙 更新时间:2023-11-04 09:23:46 25 4
gpt4 key购买 nike

有一个数据框如下:

id  year number
1 2016 3
1 2017 5
2 2016 1
2 2017 5
...

我想提取2016年和2017年groupby id和number列的值都大于3的行。

例如上面的前4行,结果是:

   id  year number
1 2016 3
1 2017 5

谢谢!

最佳答案

比较 >=3 并使用 GroupBy.transform对于与原始尺寸相同的系列,因此可以按 boolean indexing 过滤:

df1 = df[(df["number"] >= 3).groupby(df["id"]).transform('all')]
#alternative for reassign mask to column
#df = df[df.assign(number= df["number"] >= 3).groupby("id")['number'].transform('all')]
print (df1)
id year number
0 1 2016 3
1 1 2017 5

或者使用filter , 但如果数据帧很大或有很多组,它应该会很慢:

df1 = df.groupby("id").filter(lambda x: (x["number"] >= 3).all())

关于python:提取列值大于3的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58742317/

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