【发布时间】:2016-11-17 08:05:32
【问题描述】:
我正在使用具有以下结构的大型数据框列:
在:
df1 = pd.DataFrame({'A': [0,0,0,1,2,0,1,0,1,2,3,4,5,6,7]})
输出:
A
0 0
1 0
2 0
3 1
4 2
5 0
6 1
7 0
8 1
9 2
10 3
11 4
12 5
13 6
14 7
如您所见,A 是一个从 0 到 n 的有序序列。这代表了我数据中的一个顺序。例如:
A
2 0
3 1
4 2
5 0
让我们取一大块df1(从索引2 到5),在A 列中,0 代表序列的开始,2 代表序列的结束。另一方面,如果没有连续的数字(例如0),则表示该序列结束。因此,我的问题是如何有效地生成一个新列(例如id),该列由基于A 数字顺序的唯一键或数字一致:
A id
0 0 -> begin and ends 1
1 0 -> begin and ends 2
2 0 -> begin 3
3 1 -> continue 3
4 2 -> ends 3
5 0 -> begin 4
6 1 -> ends 4
7 0 -> begin 5
8 1 -> continue 5
9 2 -> continue 5
10 3 -> continue 5
11 4 -> continue 5
12 5 -> continue 5
13 6 -> continue 5
14 7 -> ends 5
为了更清楚,我添加了一个图表。
【问题讨论】:
标签: python pandas numpy data-structures itertools