import csv
def group_by_sum(csv_file, group_col, sum_col):
sums = {}
with open(csv_file, 'r') as f:
reader = csv.DictReader(f)
for row in reader:
group_val = row[group_col]
sum_val = float(row[sum_col])
if group_val in sums:
sums[group_val] += sum_val
else:
sums[group_val] = sum_val
return sums
示例用法:
>>> group_by_sum('data.csv', 'category', 'amount')
{'cat1': 25.0, 'cat2': 45.5, 'cat3': 30.0}
其中,csv_file
是 CSV 文件的路径,group_col
是分组的列名,sum_col
是需要求和的列名。函数返回一个字典,其中键是分组的值,值是对应组的总和。