下面是一个示例代码,可以解决“按行id分组的值的计数”问题:
# 创建一个示例数据集
data = [
{'id': 1, 'value': 'A'},
{'id': 1, 'value': 'B'},
{'id': 2, 'value': 'A'},
{'id': 2, 'value': 'C'},
{'id': 3, 'value': 'A'},
{'id': 3, 'value': 'B'},
{'id': 4, 'value': 'C'},
]
# 创建一个空的字典,用于存储每个id的值计数
count_dict = {}
# 遍历数据集
for item in data:
# 获取当前行的id和value
id = item['id']
value = item['value']
# 检查当前id是否已经在字典中
if id in count_dict:
# 如果id已经存在,将value的计数加1
if value in count_dict[id]:
count_dict[id][value] += 1
else:
count_dict[id][value] = 1
else:
# 如果id不存在,创建一个新的字典来存储当前id的值计数
count_dict[id] = {value: 1}
# 打印结果
for id, value_counts in count_dict.items():
print(f"ID: {id}")
for value, count in value_counts.items():
print(f"{value}: {count}")
运行上述代码,将输出如下结果:
ID: 1
A: 1
B: 1
ID: 2
A: 1
C: 1
ID: 3
A: 1
B: 1
ID: 4
C: 1
这个示例代码创建了一个空的字典 count_dict
,用于存储每个id的值计数。然后,遍历数据集,对于每一行,获取当前行的id和value。然后,检查当前id是否已经存在于字典中,如果存在,将value的计数加1;如果不存在,创建一个新的字典来存储当前id的值计数。最后,打印结果,将每个id的值计数输出。
上一篇:按行获取最大值的列名