gpt4 book ai didi

python - 根据列表中可能具有可变长度的元素创建 "or"条件

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

我有一个数据框,想要在其中一列包含特定字符串时查找所有行:

tmp = data_frame[data_frame["DESC"].str.contains(tag, na=False)]

但是,假设标签是一个列表,并且我希望该列包含列表中的任何字符串,例如:

tmp = data_frame[(data_frame["DESC"].str.contains(tag[0], na=False)) | (data_frame["DESC"].str.contains(tag[1], na=False))]

现在,假设我有一个列表列表,标签是其中的一个元素,我循环遍历这个列表列表:

for tag in tag_list:
tmp = data_frame[(data_frame["DESC"].str.contains(tag[0], na=False)) | (data_frame["DESC"].str.contains(tag[1], na=False))]
---do something with tmp

此外,现在假设 tag_list 是列表的列表,但每个元素可能具有不同的长度,因此有时 tag 有 1 个元素,有时 2 个,有时 4 个等。如何以独立的方式定义 tmp标签的固定长度?

例如:

tmp = pandas.DataFrame(columns=["DESC"])
tmp.loc[0] = ["Hello"]
tmp.loc[1] = ["Hello"]
tmp.loc[2] = ["Hi"]
tmp.loc[3] = ["Good Morning"]

tag = ["Hi", "Hello"]

tmp2 = tmp[(tmp["DESC"].str.contains(tag[0], na=False)) | (tmp["DESC"].str.contains(tag[1], na=False))]

最佳答案

这应该有效。您可以尝试一下并让我知道我会在必要时进行更正:

def select_tags(df_line, taglistlist):
for taglist in taglistlist:
for tag in taglist:
if df_line['DESC'].str.contains(tag, na=False)
# INSERT LOGIC HERE
pass

df.apply(select_tags, args=(taglistlist,), axis=1)

关于python - 根据列表中可能具有可变长度的元素创建 "or"条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48955833/

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