簡體   English   中英

如果 list_1 中的任何值在 df['1'] 中,則返回 False,否則返回 True

[英]If any value in list_1 is in df['1'], then return False, else return True

我做了一個 for 循環說“如果 non_chain 中的任何值在 df['DBA'] 中,則返回 False,否則返回 True”。 non_chain 是餐廳名稱列表,df['DBA'] 是餐廳名稱列。 這個循環會讓我知道餐廳是否是連鎖店。

我會將這個新創建的列表“o”從 for 循環轉換為 df 中的一列。

問題:它返回所有 False,我不知道為什么。

o = []
for x in df['DBA']:
    if any(n in x for n in non_chain):
        o.append(False)
    else:
        o.append(True)
print(o)

您描述的問題似乎應該用更簡單的方法解決

o = [name not in non_chains for name in df["DBA"]]

n in xx都是 Python 中的字符串時,x 中的n表示 substring 包含

您可以使用grepl

library(data.table)
df <- data.table(X = c("A","C","G","G","X"))
non_chain <- c('X', 'C')

check_available <- function(i, lst){
    return(any(grepl(i, x = non_chain)))
}

df[, flag := lapply(X, function(x) check_available(x, non_chain))]
print(df)

   X  flag
1: A FALSE
2: C  TRUE
3: G FALSE
4: G FALSE
5: X  TRUE

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM