Python 按列表查询行

Python 按列表查询行,python,list,pandas,Python,List,Pandas,我有一个pandas数据框,希望返回与目标ID列表中出现的客户ID对应的数据框中的行 例如,如果我的数据框如下所示: id Name ... ... ------------------------- 1 Bob ... ... 2 Dave ... ... 2 Dave ... ... 3 Phil ... ... 4 Rick ... ... 4 Rick .

我有一个pandas数据框,希望返回与目标ID列表中出现的客户ID对应的数据框中的行

例如,如果我的数据框如下所示:

id    Name    ...    ...
-------------------------
1     Bob     ...    ...
2     Dave    ...    ...
2     Dave    ...    ...
3     Phil    ...    ...
4     Rick    ...    ...
4     Rick    ...    ...
基本上,我希望返回在此数据框中多次出现的客户的行。所以我想返回所有多次出现的ID

id    Name    ...    ...
-------------------------
2     Dave    ...    ...
2     Dave    ...    ...
4     Rick    ...    ...
4     Rick    ...    ...
我可以通过执行以下操作获得ID列表

grouped_ids = df.groupby('id').size()
id_list = grouped_ids[grouped_ids>1].index.tolist()
现在我想回到数据框,返回与列表中那些ID对应的所有行

这可能吗


谢谢你的帮助

我猜您正在寻找
isin()

[编辑]要匹配给定的目标列表,只需将其用作
isin()
方法的参数:

In [5]: mylist = (1,3)

In [6]: df[df.customer_id.isin(mylist)]
Out[6]: 
       A  customer_id
1  abcde            1
3  abcde            3

你能出示一些样品数据吗?
In [5]: mylist = (1,3)

In [6]: df[df.customer_id.isin(mylist)]
Out[6]: 
       A  customer_id
1  abcde            1
3  abcde            3