熊猫过滤/汇集并保留旧指数

时间:2017-08-07 22:02:04

标签: python python-2.7 pandas indexing

这是我的问题:

我在同一数据中有2列。 ID的一列(重复几个Id),其他列是关于年龄(重复多个年龄)。 我想创建新的列,我重新组合Ids然后调用/显示它们在OLD表中的位置。 一个例子: 年龄= [12,14,10,12,10](指数分别为1,2,3,4,5) 我希望获得以下内容: Age2 = [10,10,12,12,14],Indexe = [3,5,1,4,2] 当我打电话给10岁时,我可以获得10最初的以下指数(3,5)。

我的代码示例:

    for ind in ind_list:
        data.temp = data[data['age'] == ind].copy()
        inds = data.temp.index.tolist()
     #Here I obtain a list that inform me about the indexes of the IDS in 
     the old data

另一种方法更长:

        Final = []
        index = 0;
        for i in range(len(CTs2) - 1, -1, -1):
        data.temp = data['student_ID'][inds]
        data.temp = data.temp[data.temp == CTs2[i]]
        inds2 = data.temp.index.tolist()

     if len(inds2) > 0:
            CTs2.pop(i)
            final.extend(inds2)
            final.extend(inds2)
            special_index += 1

我希望得到一些帮助......谢谢大家

1 个答案:

答案 0 :(得分:0)

如果要创建存储重复年龄索引的列,可以使用

frame = pd.DataFrame(np.random.randint(1,5,(10,2)),columns=['ID','Age'])

frame['Age2'] = [[dex for y,dex in zip(frame.Age,frame.index) if x == y] for x in frame.Age]