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

时间:2017-08-24 23:15:58

标签: python pandas

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

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

...

etc ...如果内容足够相似(如上例中的Cheryl和Derrick),我想合并行(和foo_val的值),所以看起来如下所示:

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

我还不知道Pandas,但我看过duplicated(如df.duplicated('name'))和groupby以及{{1}但我很确定这些不是我想要的(很可能是错误的......)。在那个问题上,我经常搜索这个,但是假设之前已经问过这个问题,所以如果我错过了它们,请指出其他问题/答案......

我可以想象一种用纯Python进行迭代的方法,但是很想知道这是否可能在Pandas ...

1 个答案:

答案 0 :(得分:1)

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

完成
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