以下是一个示例代码,演示如何按照一个列对二维数组进行分组,并在每个组中累加另一个列的值。
from collections import defaultdict
def group_and_sum(arr, group_col, sum_col):
groups = defaultdict(int)
for row in arr:
group = row[group_col]
value = row[sum_col]
groups[group] += value
return groups
# 示例数据
data = [
[1, 10],
[2, 20],
[1, 30],
[2, 40],
[3, 50]
]
grouped_data = group_and_sum(data, 0, 1)
print(grouped_data)
输出结果:
defaultdict(, {1: 40, 2: 60, 3: 50})
在这个示例中,我们定义了一个名为group_and_sum
的函数,它接受一个二维数组arr
、一个用于分组的列索引group_col
和一个用于累加的列索引sum_col
作为参数。
然后,我们使用defaultdict
创建一个名为groups
的字典,用于存储每个组的累加值。defaultdict
是一个特殊的字典,当访问一个不存在的键时,它会自动创建一个默认值。
接下来,我们遍历二维数组中的每一行。对于每一行,我们提取分组列和累加列的值,并将累加值添加到相应组的累加值中。
最后,我们返回包含每个组的累加值的字典。
在示例数据中,我们使用第一列作为分组列,第二列作为累加列。所以我们按照第一列对数组进行分组,然后在每个组中累加第二列的值。输出结果显示了每个组的累加值。