Bắt đầu ngayBắt đầu miễn phí

Gộp các tháng thành quý

Trước đó, bạn đã thấy cách tách một quý thành các tháng để có thông tin chi tiết theo tháng. Vậy khi ngược lại — chúng ta muốn gộp dữ liệu thành ít cột hơn — thì sao? Trường hợp này khá phổ biến với dữ liệu lịch sử, khi chi tiết theo tháng có thể không cần thiết, hoặc khi chúng ta cần một phiên bản dữ liệu được hợp nhất cao để phục vụ báo cáo.

Mấu chốt là tạo một chỉ số, rồi chỉ cộng vào tổng theo quý quarter theo chu kỳ 3, hoặc cho đến khi hết độ dài danh sách. Ta có thể làm điều này với đoạn mã sau:

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

Đoạn mã này kiểm tra xem chỉ số chia cho ba có cho phần dư bằng 0 hay không, hoặc chỉ số đã ở cuối danh sách months chưa. Do đó, trong vòng lặp, nó sẽ chạy đoạn mã chỉ định sau mỗi ba tháng hoặc khi đến cuối danh sách.

Doanh số theo tháng đã được cung cấp trong biến months, bao gồm doanh số của hai quý đầu tiên và tháng đầu của Q3. Nhiệm vụ của bạn là tạo một danh sách mới tên quarters chứa các tổng theo quý từ ba tháng đầu tiên (bao gồm cả tổng một phần của Q3).

Bài tập này là một phần của khóa học

Dự báo tài chính với Python

Xem khóa học

Hướng dẫn bài tập

  • Khởi tạo danh sách rỗng quarters để chứa các giá trị theo quý mới, và biến chỉ số index đặt là 1.

  • Tạo vòng lặp for để lấy sales theo tháng trong months:

    • Cộng doanh số theo tháng vào quarter.
    • Nếu đến cuối quý hoặc cuối danh sách months, thêm tổng theo quý vào quarters.
    • Đặt lại tổng theo quý quarter về 0, tăng chỉ số lên 1 (phần này đã được làm sẵn cho bạn).
  • In ra các tổng theo quý.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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], ____, ____))
Chỉnh sửa và Chạy Mã