【问题标题】:Is there code to group similar words contained in a column是否有代码对列中包含的相似单词进行分组
【发布时间】:2019-12-25 09:56:57
【问题描述】:

是否有代码可以用来区分 Python 中具有相似字符串的单词?我想对单词进行分组,但是如果我将数据框中的 WHERE FUNCTION 用于 COFFEE 和 FEE 之类的单词,则这些单词将被视为相同,这是我不想要的。

数据框如下所示:

id        transaction           grouping
 1         ATM FEES               FEES
 2         McDonalds              MD
 3         COFFEE SHOP            FEES
 4         POS ZARA               ZARA
 5         TASTY COFFEE           FEES
 6         FREDDIES               OTHER
 7         FEES:Monthly           FEES
 8         WITHDRAWAL FEES ATM    FEES
 9         MONTE COFFEE SHOP      FEES

但我希望输出如下所示:

id        transaction            grouping
 1         ATM FEES                FEES
 2         McDonalds               MD
 3         COFFEE SHOP             COFFEE
 4         POS ZARA                ZARA
 5         TASTY COFFEE            COFFEE
 6         FREDDIES                OTHER
 7         FEES:Monthly            FEES
 8         WITHDRAWAL FEES ATM     FEES
 9         MONTE COFFEE SHOP       COFFEE

这是我使用的代码:

tranx['grouping'] = pd.np.where(temp.str.contains("COFFEE"),"COFFEE",
                    pd.np.where(temp.str.contains("McDonalds"), "MD",
                    pd.np.where(temp.str.contains("FEE"), "FEE",
                    pd.np.where(temp.str.contains("ZARA"), "ZARA",OTHER))))

我可以使用其他代码来区分 COFFEE 和 FEE 以便它们不属于同一组吗?

【问题讨论】:

    标签: python pandas python-2.7 numpy jupyter-notebook


    【解决方案1】:

    我不太确定您要做什么,但您可以检查字符串是否与列文斯坦距离相似。列文斯坦距离告诉您必须完成多少“更改”才能获得两个相同的字符串。它在 Python Jellyfish 库中得到了很好的实现。

    https://jellyfish.readthedocs.io/en/latest/comparison.html#levenshtein-distance

    也许这就是你要找的东西。最好的问候。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-12
      • 2018-01-14
      • 2012-07-17
      • 2014-04-11
      • 1970-01-01
      • 2019-12-17
      相关资源
      最近更新 更多