我有以下的熊猫数据框:pandas dataframe:如何计算二进制列中的1行数量?
import pandas as pd
import numpy as np
df = pd.DataFrame({"first_column": [0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0]})
>>> df
first_column
0 0
1 0
2 0
3 1
4 1
5 1
6 0
7 0
8 1
9 1
10 0
11 0
12 0
13 0
14 1
15 1
16 1
17 1
18 1
19 0
20 0
first_column
是0和1的二进制列。有连续的“集群”,它们总是以至少两对的形式出现。
我的目标是创建一个列,其“罪状”每组的人的行数:
>>> df
first_column counts
0 0 0
1 0 0
2 0 0
3 1 3
4 1 3
5 1 3
6 0 0
7 0 0
8 1 2
9 1 2
10 0 0
11 0 0
12 0 0
13 0 0
14 1 5
15 1 5
16 1 5
17 1 5
18 1 5
19 0 0
20 0 0
这听起来像一个工作为df.loc()
,例如df.loc[df.first_column == 1]
...东西
我只是不确定如何考虑每个人的“集群”,以及如何用“行数”来标记每个独特的集群。
如何做到这一点?
这工作非常好!我很欣赏解释发生了什么的评论 – ShanZhengYang