我有一个清单如下。

[['Andrew', '1', '9'], ['Peter', '1', '10'], ['Andrew', '1', '8'], ['Peter', '1', '11'], ['Sam', '4', '9'], ['Andrew', '2', '2']]

我想把最后一列按其他列分组,结果如下
[['Andrew', '1', '17'], ['Peter', '1', '21'], ['Sam', '4', '9'], ['Andrew', '2', '2']]

这仍然是一个列表。
在实际操作中,我总是希望总结最后一列,并按许多其他列进行分组。有没有一种方法可以用python实现?非常感谢。

最佳答案

按除最后一列以外的所有列动态分组:

In [24]: df = pd.DataFrame(data)

In [25]: df.groupby(df.columns[:-1].tolist(), as_index=False).agg(lambda x: x.astype(int).sum()).values.tolist()
Out[25]: [['Andrew', '1', 17], ['Andrew', '2', 2], ['Peter', '1', 21], ['Sam', '4', 9]]

关于python - 如何对列表中其他列分组的列进行求和?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49536332/

10-09 05:58