首页 > 解决方案 > 如何用字符串分组

问题描述

我一直在尝试解决我之前发布的一个问题。现在我有一个 df 并且我想添加数字到Pairing只要typeName匹配。我使用 groupby 方法有点成功,如下所示:

x = df['type'].str[:5]
df['Pairing'] = df.groupby([x, 'Name']).ngroup()+1


Name    | type  |      Pairing 
---------------------------
Charles |Circle       | 1
Scott   |Square       | 2
Scott   |Triangle     | 3
Anne    |Rectangle    | 4
Anne    |Rectangle2   | 4
Anne    |Oval         | 5
Anne    |Oval         | 5
Bart    |Octagon      | 6

我使用.str[:5]是因为有时一个数字或符号会附加到一个type而不是另一个。这种方法有效,但是如果我有一个像 Oval它这样的类型,因为它少于 5 个。

我不知道如何解决这个问题。如果有人有任何建议,请告诉我!我想知道和if声明是否可以在这里工作?

标签: pythonpandasdataframe

解决方案


这将删除数字:

x = df['type'].str.replace('\d+', '')

推荐阅读