根据列(另一个数据帧)的值获取数据帧(切片)

时间:2017-06-22 22:44:02

标签: pandas

我在第一个数据框中有一个id列的列表:

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

我有第二个数据框,比第一个更大。从第二个数据帧(基于列表id)我想得到数据帧,其中第一个数据帧的id与第二个数据帧的id匹配。所以我想得到第二个数据帧的行,它匹配第一个数据帧的id列 唯一常见的值是id值。我该怎么办?

2 个答案:

答案 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)]