我在数据框上使用groupby函数,基于我希望的列进行分组,然后我需要获取每个项目在其组中的索引。所谓的索引是指如果一个组中有10个项目,则索引从0到9,而不是数据框索引。
下面是我的代码:
import pandas as pd
df = pd.DataFrame({'A': np.random.randint(0, 11, 10 ** 3), 'B': np.random.randint(0, 11, 10 ** 3),
'C': np.random.randint(0, 11, 10 ** 3), 'D': np.random.randint(0, 2, 10 ** 3)})
grouped_by = df.groupby(["A", "B", "C"])
groups = dict(list(grouped_by))
index_dict = {k: v.index.tolist() for k,v in groups.items()}
df["POS"] = df.apply(lambda x: index_dict[(x["A"], x["B"], x["C"])].index(x.name), axis=1)
这里的数据框只是一个示例。
是否有一种方法可以使用“grouped_by”来实现这个目标?