以下是一个示例代码,它按照两列对二维数组的行数据进行分组,并为每个用户保持一个累计总数。
from collections import defaultdict
def group_and_sum(data):
group_dict = defaultdict(int)
for row in data:
user = tuple(row[:2]) # 使用前两列作为用户标识
value = row[2] # 第三列作为值
group_dict[user] += value # 累计值
result = []
for user, total in group_dict.items():
result.append(list(user) + [total]) # 将用户标识和累计值组成新的行数据
return result
# 示例数据
data = [
['user1', 'group1', 10],
['user1', 'group1', 5],
['user2', 'group1', 3],
['user2', 'group2', 8],
['user3', 'group2', 2],
]
result = group_and_sum(data)
for row in result:
print(row)
输出结果:
['user1', 'group1', 15]
['user2', 'group1', 3]
['user2', 'group2', 8]
['user3', 'group2', 2]
上述代码使用defaultdict
创建一个字典group_dict
,其中键是用户标识(前两列的值),值是累计总数。然后,遍历输入数据的每一行,根据用户标识更新对应的累计值。最后,将用户标识和累计值组成新的行数据,并将其添加到结果列表中。