2017-08-07 44 views
0

這裏是我的問題:熊貓過濾/彙集並保留舊索引

我在同一數據中有2列。一列ID(幾個ID是重複的)和另一列是關於年齡(許多年齡重複)。 我想要創建新的列,在其中我重新組合ID然後調用/顯示他們的索引,他們在舊錶中的位置。例如: 年齡= [12,14,10,12,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 

我希望一些幫助......謝謝大家

+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] 
+0

記憶錯誤:( –