我有一個字符串。我需要查找該字符串中的關鍵字是否存在于我的數據框中。如果存在,我需要返回該關鍵字。細繩:question="Joe is Available"question=question.upper()str_list=question.split()str_list出[107]:['JOE', 'IS', 'AVAILABLE']數據框:df=pd.DataFrame({"Person1":("Ash","Joe","Harry"),"Person2":("Abe","Lisa","Katty",),"Person3":("Sam","Max","Stone")})df=df.apply(lambda x: x.astype(str).str.upper())Person1 Person2 Person3ASH ABE SAMJOE LISA MAXHARRY KATTY STONE我的嘗試:return_field=""for x in str_list: print(x) for i in df.iterrows(): if(df.str.contains(x)): return_field=x給我 AttributeError: 'DataFrame' 對象沒有屬性 'str'預期產出由于 Joe 出現在數據框中,它應該返回我“Joe”
2 回答

慕姐8265434
TA貢獻1813條經驗 獲得超2個贊
如果您重復執行此操作,您可能希望通過 .hash 散列您的值set。此外,您可以使用mapwithstr.upper將數據幀值轉換為大寫1:
str_all = set(map(str.upper, df.values.ravel()))
question = "Joe is Available"
str_search = set(question.upper().split())
res = str_search & str_all
# {'JOE'}
1您可以使用pd.DataFrame.apply+ lambda,但不推薦這樣做。pd.Series.str目前,字符串操作 via是出了名的慢。lambda在頂部添加一個循環會使情況變得更糟。
添加回答
舉報
0/150
提交
取消