gpt4 book ai didi

python - 过滤具有连续数字的行

转载 作者:行者123 更新时间:2023-12-05 01:50:27 27 4
gpt4 key购买 nike

我有一些数据。

当 ID 有 4 个连续数字时,我想保留行。例如,如果 ID 1 有第 100、101、102、103、105 行,则应排除“105”。

数据:

    ID    X
0 1 100
1 1 101
2 1 102
3 1 103
4 1 105
5 2 100
6 2 102
7 2 103
8 2 104
9 3 100
10 3 101
11 3 102
12 3 103
13 3 106
14 3 107
15 3 108
16 3 109
17 3 110
18 3 112
19 4 100
20 4 102
21 4 103
22 4 104
23 4 105
24 4 107

预期结果:

    ID    X
0 1 100
1 1 101
2 1 102
3 1 103
4 3 100
5 3 101
6 3 102
7 3 103
8 3 106
9 3 107
10 3 108
11 3 109
12 3 110
13 4 102
14 4 103
15 4 104
16 4 105

最佳答案

您可以识别连续值,然后使用 groupby.filter 按大小过滤组:

# group consecutive X
g = df['X'].diff().gt(1).cumsum() # no need to group here, we'll group later

# filter groups
out = df.groupby(['ID', g]).filter(lambda g: len(g)>=4)#.reset_index(drop=True)

输出:

    ID    X
0 1 100
1 1 101
2 1 102
3 1 103
9 3 100
10 3 101
11 3 102
12 3 103
13 3 106
14 3 107
15 3 108
16 3 109
17 3 110
20 4 102
21 4 103
22 4 104
23 4 105

关于python - 过滤具有连续数字的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73072372/

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