2017-08-07 2 views
0

ここに私の質問があります:パンダのフィルタリング/プールと古い指標の維持

私は同じデータに2列あります。 IDの列(複数のIdが繰り返されます)とその他の列は年齢です(多くの年代が繰り返されます)。 新しい列を作成して、IDを再グループ化してから、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 

私はいくつかの助けを願っています...あなたのすべてをありがとう、あなたが列を作成したい場合は

+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

メモリエラー:( –

関連する問題