gpt4 book ai didi

python - 基于数据框中列表对象内容的 Pandas 数据框选择

转载 作者:行者123 更新时间:2023-12-04 10:13:21 25 4
gpt4 key购买 nike

我有一个 Pandas 数据框,其中一列包含列表对象,它给了我 dtype: object.列表对象的长度不同。

        features           other_features
0 ["foo", "bar"] 2
1 ["foo", "dog"] 1
2 ["dog"] 4

我想选择我的数据框中的行,其中列表具有不同列表中的元素 external_list = ["dog", "cat"] .

在这种情况下,我希望结果是包含 dog 或 cat 以及其他 coulmns 的行,这将是:
        features           other_features
1 ["foo", "dog"] 1
2 ["dog"] 4

我试过 isin,但据我所知,它需要元素的列类型来查看,而不是一个包含多个对象的列表。
filter = df["features"].isin(["dog", "cat"])
它导致每个元素都是 False,它不应该是因为一些应该是 True,并且它不会返回其余的列。

我该如何解决这个问题?

最佳答案

使用 map将比较列表转换为由 isdisjoint 测试的集合, ~用于反向掩码:

#if string repr of list
#import ast
#df['features'] = df['features'].apply(ast.literal_eval)

external_list = ["dog", "cat"]
df = df[~df.features.map(set(external_list).isdisjoint)]
print (df)
features other_features
1 [foo, dog] 1
2 [dog] 4

关于python - 基于数据框中列表对象内容的 Pandas 数据框选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61209008/

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