เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

รวมข้อมูลรายเดือนเป็นรายไตรมาส

เราได้เรียนรู้วิธีแยกข้อมูลรายไตรมาสออกเป็นรายเดือนเพื่อดูรายละเอียดที่ละเอียดยิ่งขึ้น แต่ถ้าต้องการทำสิ่งตรงกันข้าม คือรวมข้อมูลให้มีคอลัมน์น้อยลงล่ะ? กรณีนี้พบได้บ่อยเมื่อทำงานกับข้อมูลในอดีต ที่รายละเอียดรายเดือนอาจไม่จำเป็น หรือเมื่อต้องการสรุปข้อมูลในภาพรวมสำหรับรายงาน

หลักการสำคัญคือการสร้าง index แล้วเพิ่มค่าเข้า quarter ทุก 3 รอบ หรือจนกว่าจะสิ้นสุดลิสต์ โดยใช้โค้ดต่อไปนี้:

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

โค้ดนี้ตรวจสอบว่า index หารด้วยสามแล้วเหลือ เศษ เป็น 0 หรือไม่ หรือ index ถึงท้ายลิสต์ months แล้วหรือยัง ใน loop จึงจะรันโค้ดที่กำหนดทุกสามเดือน หรือเมื่อถึงท้ายลิสต์

ข้อมูลยอดขายรายเดือนถูกกำหนดไว้ในตัวแปร months ซึ่งประกอบด้วยยอดขายจากสองไตรมาสแรก และเดือนแรกของ Q3 ให้สร้างลิสต์ใหม่ชื่อ quarters ที่เก็บยอดรวมรายไตรมาสจากสามไตรมาสแรก (รวมยอดบางส่วนของ Q3 ด้วย)

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การพยากรณ์ทางการเงินด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • กำหนดลิสต์ว่าง quarters สำหรับเก็บค่ารายไตรมาส และตัวแปร index ชื่อ index ให้มีค่าเริ่มต้นเป็น 1

  • สร้าง for loop เพื่อดึงยอดขายรายเดือน sales จาก months:

    • เพิ่มยอดขายรายเดือนเข้าไปใน quarter
    • ถ้าสิ้นสุดไตรมาสหรือถึงท้ายลิสต์ months ให้ append ยอดรวมรายไตรมาสเข้าไปใน quarters
    • รีเซ็ตยอดรวมรายไตรมาส quarter เป็น 0 แล้วเพิ่มค่า index ทีละ 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], ____, ____))
แก้ไขและรันโค้ด