将月份合并为季度
前面我们已经看到,当需要把季度拆分为月份以获得更细的月度信息时该怎么做。那么反过来,如果我们希望把数据合并为更少的列该怎么办呢?这在处理历史数据时很常见,因为可能不需要月度明细,或者在出报告时需要高度汇总的数据。
关键在于创建一个索引,然后仅在每 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], ____, ____))