2017-06-22 123 views
0

我已經從第一數據幀id列的列表:獲取基於列的值(另一數據幀的)的數據幀(切片)

id = ['prime*76164862', 
'prime*40960715', 
'80006*0000000000359596', 
'gcif*103058587', 
'prime*54619204'...] 

我有第二數據幀,也就是比第一個更大。從第二個數據幀(基於列表id)我想要獲取數據幀,其中第一個數據幀的id與第二個數據幀的ID匹配。所以我想獲得第二個數據幀的行,匹配第一個數據幀的id列 唯一的值,這是常見的,是id值。我該怎麼做?

+0

可以請你給我提供兩個數據框 – ammy

回答

0

比方說你的第二個數據幀被稱爲「DF」,您的ID列被稱爲「IDS」,你可以通過你的列表「ID」像這樣過濾:

id = ['prime*76164862', 
'prime*40960715', 
'80006*0000000000359596', 
'gcif*103058587', 
'prime*54619204'] 

df[df['ids'].isin(id)] 
1

DF1數據:

df1 
         id 
0   prime*76164862 
1   prime*40960715 
2 80006*0000000000359596 
3   gcif*103058587 
4   prime*54619204 

DF2數據:

df2 
         id 
0   prime*76164862 
1   prime*40960715 
2 80006*0000000000359596 
3   gcif*103058587 
4   prime*54619204 
5  prime*5461920488 
6  prime*5461920444 

檢查isin

final_data = df1.loc[df1['id'].isin(df2['id'])] 

final_data 

final_data

     id 
0   prime*76164862 
1   prime*40960715 
2 80006*0000000000359596 
3   gcif*103058587 
4   prime*54619204 
相關問題