為了減少歧義,我想改進我的代碼以指定我的 '==' 函式可以包含任何情況。
例如 Apple、APPLE、aAppLe 應該被接受(等等)
function = (df.loc[(df['Food']=='Apple') #and so on...
我是否必須指定如下所示的每個變體,或者是否有更清潔的替代方案
function = (df.loc[(df['Food']=='Apple|apple|APPLE') #and so on...
uj5u.com熱心網友回復:
使用Series.str.fullmatch它允許一個case論點。fullmatch要求字串完全匹配,而不僅僅是子字串(您將使用.str.contains或.str.match)。
import pandas as pd
df = pd.DataFrame({'Food': ['ApPlE', 'apple', 'APPLE', 'apples', 'Banana']})
# Assign the Boolean mask for illustration
df['any_case_apple'] = df['Food'].str.fullmatch('apple', case=False)
print(df)
# Food any_case_apple
#0 ApPlE True
#1 apple True
#2 APPLE True
#3 apples False
#4 Banana False
uj5u.com熱心網友回復:
忽略大小寫:
df.loc[df['Food'].str.lower()=='apple']
# or
df.loc[df['Food'].str.lower()=='Apple'.lower()]
uj5u.com熱心網友回復:
如果你想檢查是否Apple是在任何字串,忽略大小寫,你可以這樣做:
df[df['Food'].str.contains('apple', case=False)]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/383040.html
下一篇:合并資料幀熊貓中的所有txt檔案
