我有一个如下数据框:
import pandas as pd
df = pd.DataFrame({"id":[1,1,1,1,1,1,2,2,2,2,3,3,3,3],
"val":[0,1,1,0,1,0,0,1,0,1,0,0,0,1]})
id val
0 1 0
1 1 1
2 1 1
3 1 0
4 1 1
5 1 0
6 2 0
7 2 1
8 2 0
9 2 1
10 3 0
11 3 0
12 3 0
13 3 1
你可以看到ID是重复的,我的值在0和1之间交替.我想以某种方式计算值从0切换到1的次数.例如像这样:
id val
1 2
2 2
3 1
它不是1的计数,而是对于每个ID,val切换为0 – > 1的计数器次数.
最佳答案 通过使用差异
df.groupby('id').val.apply(lambda x : sum(x.diff().eq(1)))
Out[306]:
id
1 2
2 2
3 1
Name: val, dtype: int64