gpt4 book ai didi

python - 如何将 series.isin 与不同的集合一起用于不同的值?

转载 作者:太空狗 更新时间:2023-10-30 00:00:51 24 4
gpt4 key购买 nike

如您所知,我可以执行 df[df.column.isin(set)] 来获取列值在该集合中的 DataFrame 部分。但是现在我的源集依赖于 column1 的值。在过滤数据帧时,如何使函数 lookup 成为源集的字典?

假设我有

dict1={'a':[1,2,3],'b':[1,2],'c':[4,5,6]}

我的 df 看起来像

column1  column2
a 4
b 2
c 6

新的 df 应该是这样的

column1  column2
b 2
c 6

因为 4 不在 dict1 中 'a' 指向的列表中。

new_df = df[df.column2.isin(dict1[df.column1])]这给了我 TypeError。我明白,因为我使用 pd.Series 作为键并且它不可哈希。

最佳答案

问题是 isin 需要一个值序列,而不是一系列序列。换句话说,它允许对键进行矢量化,但不允许对值进行矢量化。

所以这里必须使用非向量化的方式,例如:

df[df.apply(lambda x: x['column2'] in dict1[x['column1']], axis=1)]

关于python - 如何将 series.isin 与不同的集合一起用于不同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56558909/

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