2017-06-22 122 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 
相关问题