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

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


...

等等...如果内容足够相似(例如上面的示例中的Cheryl和Derrick),我希望在其中合并行(以及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

关于python - Pandas 过滤器/组合相似的字符串值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45872239/

10-12 19:56