我在第一个数据框中有一个id
列的列表:
id = ['prime*76164862',
'prime*40960715',
'80006*0000000000359596',
'gcif*103058587',
'prime*54619204'...]
我有第二个数据框,比第一个更大。从第二个数据帧(基于列表id
)我想得到数据帧,其中第一个数据帧的id
与第二个数据帧的id匹配。所以我想得到第二个数据帧的行,它匹配第一个数据帧的id列
唯一常见的值是id值。我该怎么办?
答案 0 :(得分: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
答案 1 :(得分:0)
让我们说你的第二个数据框叫做“df”而你的id-column叫做“ids”,你可以按照你的列表“id”进行过滤,如下所示:
id = ['prime*76164862',
'prime*40960715',
'80006*0000000000359596',
'gcif*103058587',
'prime*54619204']
df[df['ids'].isin(id)]