gpt4 book ai didi

python - pandas 按列表查询行

转载 作者:行者123 更新时间:2023-12-01 05:10:54 25 4
gpt4 key购买 nike

我有一个 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():

In [1]: import pandas as pd

In [2]: df = pd.DataFrame({'customer_id':range(5), 'A':('a', 'b', 'c', 'd', 'e')})

In [3]: df
Out[3]:
A customer_id
0 a 0
1 b 1
2 c 2
3 d 3
4 e 4

In [4]: df[df.customer_id.isin((1,3))]
Out[4]:
A customer_id
1 b 1
3 d 3

[编辑]要匹配给定的目标列表,只需将其用作 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

关于python - pandas 按列表查询行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24237211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com