一个解决方法是使用一个字典来存储每一组的连续值的和,然后按日期顺序遍历列表,将同一组的连续值求和并存储在字典中。最后,按日期顺序输出每一组的连续值的和。
下面是一个示例代码:
def sum_continuous_values_by_date(data):
groups = {} # 用于存储每一组的连续值的和的字典
current_group = None # 当前组的标识符
current_sum = 0 # 当前组的连续值的和
for item in data:
date, value, group = item[0], item[1], item[2]
if group != current_group:
# 如果当前组与前一组不同,将前一组的连续值的和存储在字典中
if current_group is not None:
groups[current_group] = current_sum
current_group = group
current_sum = 0
current_sum += value
# 存储最后一组的连续值的和
groups[current_group] = current_sum
# 按日期顺序输出每一组的连续值的和
for group, sum_value in sorted(groups.items(), key=lambda x: x[0]):
print(f"Group: {group}, Sum: {sum_value}")
# 示例数据
data = [
["2022-01-01", 10, "A"],
["2022-01-02", 20, "A"],
["2022-01-03", 30, "A"],
["2022-01-04", 40, "B"],
["2022-01-05", 50, "B"],
["2022-01-06", 60, "A"],
["2022-01-07", 70, "A"]
]
sum_continuous_values_by_date(data)
运行上述代码将输出:
Group: A, Sum: 60
Group: B, Sum: 90
Group: A, Sum: 130
以上代码将同一组的连续值求和,并按日期顺序输出每一组的连续值的和。
上一篇:按日期顺序绘制数据