【发布时间】:2018-03-14 12:14:55
【问题描述】:
背景:我有以下数据框
import pandas as pd
d = {'text': ["paid", "paid and volunteer", "other phrase"]}
df = pd.DataFrame(data=d)
df['text'].apply(str)
输出:
text
0 paid
1 paid and volunteer
2 other phrase
目标:
1) 检查每一行以确定paid 是否存在并返回一个布尔值(如果paid 在文本列中的任何位置返回True,如果paid 不存在则返回False。但我会喜欢排除单词volunteer。如果存在volunteer,则结果应该是false。
2) 使用结果创建一个新列
所需的输出:
text result
0 paid true
1 paid and volunteer false
2 other phrase false
问题:我正在使用以下代码
df['result'] = df['text'].astype(str).str.contains('paid') #but not volunteer
我检查了How to negate specific word in regex?,它显示了如何排除一个词,但我不确定如何将其包含在我的代码中
问题: 如何更改我的代码以实现 1) 和 2) 我的目标
【问题讨论】: