gpt4 book ai didi

python - 对具有列表值的列使用 isin()

转载 作者:太空宇宙 更新时间:2023-11-04 07:13:47 26 4
gpt4 key购买 nike

我有两个数据框。 Dataframe A 有一列由 list ids(命名项)值组成。数据框 B 有一列 int id 值(命名为 id)。

数据框 A:

date       |    items
2019-06-05 | [121, 123, 124]
2019-06-06 | [109, 125]
2019-06-07 | [108, 126]

数据框 B:

name  | id
item1 | 121
item2 | 122
item3 | 123
item4 | 124
item5 | 125
item6 | 126

我想过滤 Dataframe A 并只保留该行中 items 的所有值都存在于 Dataframe B 的 id 列中的行。

根据上面的例子,结果应该是:

数据框 C:

date       |    items
2019-06-05 | [121, 123, 124]

(因为 Dataframe B 没有 id==108 和 id==109 的行)

如果 items 是一个 int 列,我可以使用:

dataframe_a[dataframe_a.items.isin(dataframe_b.id)]

如何在 list 列中实现这一点?

最佳答案

我们可以使用issubset

l=[set(x).issubset(dfb.id.tolist())for x in df['items']]
Out[64]: [True, False, False]

然后

df=df[l]

关于python - 对具有列表值的列使用 isin(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56610734/

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