Python 在dataframe列中查找字符串

Python 在dataframe列中查找字符串,python,pandas,Python,Pandas,我有一个单词列表 列出示例['1'、'2'、'3'、'4'] 以及与其他词语一致的数据帧,例如: col1, col2, col3 0 two nine ten 1 two three ten 2 five NaN NaN 2 five three NaN 2 two NaN NaN 2 five NaN NaN 2 two NaN NaN 2 five NaN NaN 2

我有一个单词列表

列出示例['1'、'2'、'3'、'4']

以及与其他词语一致的数据帧,例如:

     col1, col2,  col3
 0   two   nine   ten
 1   two   three  ten
 2   five  NaN    NaN
 2   five  three  NaN
 2   two   NaN    NaN
 2   five  NaN    NaN
 2   two   NaN    NaN
 2   five  NaN    NaN
 2   five  NaN    NaN
 2   two   NaN    NaN
现在我想循环遍历第一个列表中的单词,并检查每一列是否包含该单词。如果是这样,那么我将给它一个附加到另一个数据帧的值。这是我的密码:

removed_data = []
lst = []
for word in list_example:
         if df['col3'].str.contains(word).any():            
            alert = 1
        else:
            alert = 0
        if df['col1'].str.contains(word).any():
            sentiment = 'positive'
        elif df['col2'].str.contains(word).any():
            sentiment = 'negative'
        else:
            sentiment = 'unknown'
        lst.append(word)
        lst.append(sentiment)
        lst.append(alert)

df_dict = pd.DataFrame(lst, columns=['word','sentiment','alert'])
df_dict.head()
现在我得到了以下错误:“错误:在位置0处无需重复”

起初我认为这是因为我在数据帧中得到了NaN值。但我就是不明白。请帮忙

------编辑-------

预期产出:

     word, sentiment,  alert
 0   one   unknown     0
 1   two   positive    0
 2   three negative    0
 3   four  unknown     0
 ...
编辑数据框,使其更能代表真实数据。

替换“附加序列”:

前面的代码返回:

    word sentiment  alert
0    one   unknown      0
1    two  positive      0
2  three  negative      0
3   four   unknown      0

您能否指定预期输出的外观?这将有助于我们为您提供更好的解决方案。这肯定是更好的,但并没有解决最初的问题。很好的说明是(显然)这不是真实的数据。但在实际数据集中,col1有549个非空值,COL2742和col3只有82个。这意味着它的所有其他行都是NaN。这是导致它的原因吗?嗨,修改你的语句使它更能代表你的问题:让它生成它。请参阅上面编辑的数据帧。如果你使用:df.dropna(子集=[“col2”,“col3”],how='all');并且只在过滤的数据集上工作。嗯,你的具体问题似乎是链接到你庞大的数据集中的数据。。。
    word sentiment  alert
0    one   unknown      0
1    two  positive      0
2  three  negative      0
3   four   unknown      0