熊猫过滤/组合相似的字符串值



我有一个包含名称的数据帧,我正在尝试组合相似的名称。例:

| name      | foo_val |
| --------- | ------- |
| Andrew    | 2       |
| Braden    | 1       |
| Cheryl    | 4       |
| Cheryl :D | 1       |
| Christian | 1       |
| Derrick   | 2       |
| Derrick L | 2       |

等等......如果内容足够相似(例如上面示例中的谢丽尔和德里克(,我想合并行(以及 foo_val 的值(,因此它看起来像下面这样:

| name      | foo_val |
| --------- | ------- |
| Andrew    | 2       |
| Braden    | 1       |
| Cheryl    | 5       |
| Christian | 1       |
| Derrick   | 4       |

我还不像我想的那样了解熊猫,但我已经看过duplicated(如df.duplicated('name')(和groupby以及merge但我很确定这些不是我想要的(很可能是错误的......关于这一点,我搜索了很多,但假设之前已经问过这个问题,所以如果我错过了,请指出其他问题/答案......

我可以想象一种在纯 Python 中通过迭代做到这一点的方法,但很想知道这在 Pandas 中是否可行......

在您发布的示例中,您需要按字符串的第一部分分组并组合结果。这可以使用

df.groupby(df.name.str.split().str[0]).foo_val.sum().reset_index()

name        foo_val
0   Andrew      2
1   Braden      1
2   Cheryl      5
3   Christian   1
4   Derrick     4

最新更新