【发布时间】:2022-07-19 21:08:12
【问题描述】:
假设我有一个包含 1 和 0 的数据框列,我想按值为 1 的集群进行分组。使用 groupby 通常会呈现 2 组、一组 0 和一组 1 .
df = pd.DataFrame([1,1,1,0,0,0,0,1,1,0,0,0,1,0,1,1,1],columns=['clusters'])
print df
clusters
0 1
1 1
2 1
3 0
4 0
5 0
6 0
7 1
8 1
9 0
10 0
11 0
12 1
13 0
14 1
15 1
16 1
for k, g in df.groupby(by=df.clusters):
print k, g
0 clusters
3 0
4 0
5 0
6 0
9 0
10 0
11 0
13 0
1 clusters
0 1
1 1
2 1
7 1
8 1
12 1
14 1
15 1
16 1
因此,实际上,我需要为所有 1 的集群创建一个具有唯一标识符的新列:因此我们最终会得到:
clusters unique
0 1 1
1 1 1
2 1 1
3 0 0
4 0 0
5 0 0
6 0 0
7 1 2
8 1 2
9 0 0
10 0 0
11 0 0
12 1 3
13 0 0
14 1 4
15 1 4
16 1 4
欢迎任何帮助。谢谢。
【问题讨论】:
标签: python pandas dataframe python-2.7 group-by