筛选列包含所有子字符串
Filter columns contains all substring
我正在尝试 select 数据集中的所有脆皮鸡肉三明治,我已经尝试使用此正则表达式,但它仍然有一些烤鸡肉三明治。这是代码
data_sandwich_crispy = data[data['Item'].str.contains(r'^(?=.*crispy)(?=.*sandwich)(?=.*chicken)', regex=True)]
这是
datasets
任何修改,或 link 回答非常感谢。如果有错误,真的很抱歉,谢谢大家的帮助!
这就是我的解决方案。它会查找单词 Crispy 后跟单词 Chicken 后跟单词 Sandwich 的字符串。但是,中间可以有任意数量的空格或任何其他字符。
# some data
l = ["Crispy Chicken Sandwich",
"Grilled Chicken Sandwich",
"crispy Chicken Sandwich"]
data = pd.DataFrame(l, columns=["A"])
data
# A
# 0 Crispy Chicken Sandwich
# 1 Grilled Chicken Sandwich
# 2 crispy Chicken Sandwich
# consider `case`
data[data['A'].str.contains(r'Crispy.+Chicken.+Sandwich', regex=True, case=False)]
# A
# 0 Crispy Chicken Sandwich
# 2 crispy Chicken Sandwich
如果您打算收集仅包含 crispy chicken sandwhich
的所有行,请查看下面的替代解决方案。只有当所有三个词(脆皮、鸡肉和经典)都存在时,这将 return 行:
data_sandwich_crispy = df[df['item'].str.contains(r'^(?=.*?\bcrispy\b)(?=.*?\bchicken\b)(?=.*?\bclassic\b).*$',regex=True)]
我创建了一个简单的数据框,如下所示:
item id
premium crispy chicken classic sandwhich 10
premium grilled chicken classic sandwhich 15
premium club chicken classic sandwhich 14
运行 上面给出的命令给出以下输出:
item id
premium crispy chicken classic sandwhich 10
我正在尝试 select 数据集中的所有脆皮鸡肉三明治,我已经尝试使用此正则表达式,但它仍然有一些烤鸡肉三明治。这是代码
data_sandwich_crispy = data[data['Item'].str.contains(r'^(?=.*crispy)(?=.*sandwich)(?=.*chicken)', regex=True)]
这是 datasets
任何修改,或 link 回答非常感谢。如果有错误,真的很抱歉,谢谢大家的帮助!
这就是我的解决方案。它会查找单词 Crispy 后跟单词 Chicken 后跟单词 Sandwich 的字符串。但是,中间可以有任意数量的空格或任何其他字符。
# some data
l = ["Crispy Chicken Sandwich",
"Grilled Chicken Sandwich",
"crispy Chicken Sandwich"]
data = pd.DataFrame(l, columns=["A"])
data
# A
# 0 Crispy Chicken Sandwich
# 1 Grilled Chicken Sandwich
# 2 crispy Chicken Sandwich
# consider `case`
data[data['A'].str.contains(r'Crispy.+Chicken.+Sandwich', regex=True, case=False)]
# A
# 0 Crispy Chicken Sandwich
# 2 crispy Chicken Sandwich
如果您打算收集仅包含 crispy chicken sandwhich
的所有行,请查看下面的替代解决方案。只有当所有三个词(脆皮、鸡肉和经典)都存在时,这将 return 行:
data_sandwich_crispy = df[df['item'].str.contains(r'^(?=.*?\bcrispy\b)(?=.*?\bchicken\b)(?=.*?\bclassic\b).*$',regex=True)]
我创建了一个简单的数据框,如下所示:
item id
premium crispy chicken classic sandwhich 10
premium grilled chicken classic sandwhich 15
premium club chicken classic sandwhich 14
运行 上面给出的命令给出以下输出:
item id
premium crispy chicken classic sandwhich 10