我有一个问题,我需要计算已使用的ID。在我的数据集中有一些属性:myViewGroup.addView(myView);
女巫看起来像这样:
id, time, Bi
属性描述:
id time Bi | wanted_results used
1 3 NAN | 0 []
1 3 1 | 1 [1]
1 2 NAN | 1 [1]
2 2 1 | 2 [1, 2]
2 1 1 | 2 [1, 2]
2 1 1 | 2 [1, 2]
- 代表我们的重点id
- 用于时间线,女巫
来自time
n to 0
- 表示当时是否使用了ID Bi
- 代表计算的内容所以现在我想要使用已经使用过的唯一ID作为计数。 如何将数据分组以存储使用过的ID,以获得想要的结果?
谢谢!
答案 0 :(得分:2)
您可以结合使用扩展和应用。
df['id'].expanding().apply(lambda x: len(np.unique(x)))
这将返回一个包含所需结果的系列。
答案 1 :(得分:0)
您可以通过迭代DataFrame
并将id
添加到set
df['wanted_result'] = 0
used_set = set()
for row in df.itertuples():
df.loc[row.Index, 'wanted_result'] = len(used_set)
used_set.add((row.id,))
结果
id time Bi wanted_result
0 1 3 NAN 0
1 1 3 1 1
2 1 2 NAN 1
3 2 2 1 1
4 2 1 1 2
5 2 1 1 2