gpt4 book ai didi

python - 如何计算两个相似的 pandas 列之间的索引交集?

转载 作者:行者123 更新时间:2023-12-01 03:36:23 25 4
gpt4 key购买 nike

我有以下列表:

new_pets = ['Bobcats', 'dog', 'cat', 'turtle', 'monkey', 'goat', 'ferret', 'pig', 'Chipmunks', 'Capybaras', 'Ducks']

以及以下 pandas 数据框:

In: df

0 Cats
1 Lizard
2 Dog
3 Baby Ferrets
4 Pig
5 Armadillo

如何将 df (*) 中出现的 new_pets 元素放入新列?:

In: df['new_col']

0 True
1 False
2 True
3 True
4 True
5 False

从文档中,我注意到这可以通过 contains() 来完成,所以我尝试了以下方法:

result = df[df['pets'].str.contains(x, case = False) for x in new_pets]

但是,我不确定这是否可能。例如,是否可以将 Baby Ferretsferret 匹配,因为 Ferretsferret 类似?对于该约束,我尝试使用 case=False,但没有得到预期结果 (*)。知道如何在新数据框中检索此类字符串吗?

最佳答案

您可以首先通过 | 连接值(正则表达式 or|),然后通过 lower 将所有值转换为小写 -输出位于joined 中。然后将列中的所有值小写 str.lower并调用str.contains使用 joined 检查 bobcatsdogdog ... 是否在列中:

print (df)
pets
0 Cats
1 Lizard
2 Dog
3 Baby Ferrets
4 Pig
5 Armadillo

joined = '|'.join(new_pets).lower()

df['new_col'] = df['pets'].str.lower().str.contains(joined)
print (df)
a new_col
0 Cats True
1 Lizard False
2 Dog True
3 Baby Ferrets True
4 Pig True
5 Armadillo False

关于python - 如何计算两个相似的 pandas 列之间的索引交集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40321212/

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