如何删除每组pandas python中的前导0记录

问题描述 投票:0回答:1

假设有记录

索引 订购 数据
1 1 A 0
2 2 A 0
3 3 A 0
4 4 A 1
5 5 A 2
6 6 A 1
7 1 B 0
8 2 B 2
9 3 B -1
10 4 B 0
11 5 B 2
12 6 B 4

我想排除每组中前导 0 条记录数据

期待结果

索引 订购 数据
4 4 A 1
5 5 A 2
6 6 A 1
8 2 B 2
9 3 B -1
10 4 B 0
11 5 B 2
12 6 B 4

我该如何解决这个问题?我看到了 lstrip() 但它只适用于每条记录。

python pandas group-by strip
1个回答
1
投票

GroupBy.cummax
与 comapre 一起使用,表示
0
 中的不等于 
boolean indexing
:

df1 = df[df['Data'].ne(0).groupby(df['group']).cummax()]
print (df1)
    index  order group  Data
3       4      4     A     1
4       5      5     A     2
5       6      6     A     1
7       8      2     B     2
8       9      3     B    -1
9      10      4     B     0
10     11      5     B     2
11     12      6     B     4
© www.soinside.com 2019 - 2024. All rights reserved.