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