我試圖在資料集中選擇所有脆皮雞肉三明治,我嘗試使用這個正則運算式,但它仍然有一些烤雞肉三明治。這是代碼
data_sandwich_crispy = data[data['Item'].str.contains(r'^(?=.*crispy)(?=.*sandwich)(?=.*chicken)', regex=True)]
這是資料集的外觀
任何修訂或答案鏈接都非常感謝。如果有錯誤,我真的很抱歉,謝謝你的幫助!
uj5u.com熱心網友回復:
這將是我的解決方案。它查找單詞 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
uj5u.com熱心網友回復:
如果您的意思是收集crispy chicken sandwhich僅包含的所有行,請查看下面的替代解決方案。僅當所有三個單詞(crispy、chicken 和 classic)都存在時才會回傳行:
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/362541.html
