Pandas 精确的字符串匹配函数?

Pandas exact str matching function?

pandas 是否有内置的字符串匹配函数用于精确匹配而不是正则表达式?下面的 tropical_two 代码的计数稍高。文档告诉我它执行正则表达式搜索。

tropical = reviews['description'].map(lambda x: "tropical" in x).sum()
print(tropical)
tropical_two = reviews['description'].str.count("tropical").sum()
print(tropical_two)

第一种方法是来自 Kaggle 的答案键,但与 .str 函数相比,它对我来说似乎不太可读和直观,因为当我 运行 这个它 returns True 而不是 2所以我有点困惑,如果答案键方法实际上是在计算所有出现的“热带”,而不仅仅是第一个。

def in_str(text):
    return "tropical" in text

in_str("tropical is tropical")

数据帧的前两行:

 0  Italy   Aromas include tropical fruit, broom, brimston...   Vulkà Bianco    87  NaN Sicily & Sardinia   Etna    NaN Kerin O’Keefe   @kerinokeefe    Nicosia 2013 Vulkà Bianco (Etna)    White Blend Nicosia
    1   Portugal    This is ripe and fruity, a wine that is smooth...   Avidagos    87  15.0    Douro   NaN NaN Roger Voss  @vossroger  Quinta dos Avidagos 2011 Avidagos Red (Douro)   Portuguese Red  Quinta dos Avidagos

这里是笔记本,#2 单元格中的热带代码 https://www.kaggle.com/mikexie0/exercise-summary-functions-and-maps

您可以使用 str.count 和单词边界标记来匹配精确的搜索词:

tropical_two = reviews['description'].str.count(r'\btropical\b').sum()
print(tropical_two)

可能不需要单独的完全匹配 API,因为 str.count 也可用于完全匹配。