รวมข้อมูลรายเดือนเป็นรายไตรมาส
เราได้เรียนรู้วิธีแยกข้อมูลรายไตรมาสออกเป็นรายเดือนเพื่อดูรายละเอียดที่ละเอียดยิ่งขึ้น แต่ถ้าต้องการทำสิ่งตรงกันข้าม คือรวมข้อมูลให้มีคอลัมน์น้อยลงล่ะ? กรณีนี้พบได้บ่อยเมื่อทำงานกับข้อมูลในอดีต ที่รายละเอียดรายเดือนอาจไม่จำเป็น หรือเมื่อต้องการสรุปข้อมูลในภาพรวมสำหรับรายงาน
หลักการสำคัญคือการสร้าง 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], ____, ____))