开始使用免费开始使用

将月份合并为季度

前面我们已经看到,当需要把季度拆分为月份以获得更细的月度信息时该怎么做。那么反过来,如果我们希望把数据合并为更少的列该怎么办呢?这在处理历史数据时很常见,因为可能不需要月度明细,或者在出报告时需要高度汇总的数据。

关键在于创建一个索引,然后仅在每 3 个周期时,或直到列表末尾,才把数值加到季度合计 quarter 中。可以使用以下代码实现:

if index % 3 == 0 or index == len(months):

这段代码会检查索引除以 3 的余数是否为 0,或者索引是否已到达列表 months 的末尾。因此,在循环中,它会每隔三个月或在到达列表末尾时执行指定代码。

代码中已提供月度销售额 months,包含前两个季度的销售额以及第三季度第一个月的数据。您的任务是生成一个名为 quarters 的新列表,其中包含从前 3 个月汇总得到的季度合计(其中包括 Q3 的部分合计)。

本练习是课程的一部分

Python 金融预测

查看课程

练习说明

  • 初始化一个空列表 quarters 用于存放新的季度数值,并将索引变量 index 设为 1

  • 创建一个 for 循环,遍历 months 中的月度 sales

    • 将该月销售额累加到 quarter
    • 如果到了季度末或列表 months 的末尾,将本季度合计追加到 quarters
    • 将季度合计 quarter 重置为 0,并将索引加 1(此步骤已为您完成)。
  • 打印季度合计。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Create a months list, as well as an index, and set the quarter to 0
months = [100, 100, 150, 250, 300, 10, 20]
quarter = 0
____ = ____
____ = ____

# Create for loop for quarter, print result, and increment the index
for sales in months:
    quarter += ____
    if index % ____ == ____ or index == len(____):
        ____.append(____)
        quarter = 0
    index = index + 1
    
print("The quarter totals are Q1: {}, Q2: {}, Q3: {}".format(quarters[0], ____, ____))
编辑并运行代码