gpt4 book ai didi

python - 按数据框列中的标签数组过滤和分组

转载 作者:太空宇宙 更新时间:2023-11-04 09:38:15 27 4
gpt4 key购买 nike

在下面的示例中,如何只保留数组中具有 "a" 的行出现在列 tags 中?

df = pd.DataFrame(columns=["val", "tags"], data=[[5,["a","b","c"]]])
df[3<df.val] # this works
df["a" in df.tags] # is there an equivalent for filtering on tags?

最佳答案

我认为使用集合很直观。然后你可以使用 >= 作为集合包含

df[df.tags.apply(set) >= {'a'}]

val tags
0 5 [a, b, c]

Numpy 的替代方案是

tags = df['tags']
n = len(tags)
out = np.zeros(n, np.bool8)
i = np.arange(n).repeat(tags.str.len())
np.logical_or.at(out, i, np.concatenate(tags) == 'a')

df[out]

根据 @JonClements

你可以在map中使用set.issubset(非常聪明)

df[df.tags.map({'a'}.issubset)]

val tags
0 5 [a, b, c]

关于python - 按数据框列中的标签数组过滤和分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52760758/

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