วิธีการคำนวณค่าสูงสุดของการเลื่อนในหมีแพนด้า (พร้อมตัวอย่าง)
คุณสามารถใช้วิธีการต่อไปนี้เพื่อคำนวณค่าสูงสุดที่กลิ้งใน DataFrame ของแพนด้า:
วิธีที่ 1: คำนวณค่าสูงสุดของการเลื่อน
df[' rolling_max '] = df. values_column . cummax ()
วิธีที่ 2: คำนวณค่าสูงสุดการเลื่อนต่อกลุ่ม
df[' rolling_max '] = df. groupby (' group_column '). values_column . cummax ()
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติ
ตัวอย่างที่ 1: คำนวณค่าเลื่อนสูงสุด
สมมติว่าเรามี DataFrame แพนด้าต่อไปนี้ที่แสดงยอดขายในแต่ละวันในร้านค้า:
import pandas as pd #createDataFrame df = pd. DataFrame ({' day ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], ' sales ': [4, 6, 5, 8, 14, 13, 13, 12, 9, 8, 19, 14]}) #view DataFrame print (df) day sales 0 1 4 1 2 6 2 3 5 3 4 8 4 5 14 5 6 13 6 7 13 7 8 12 8 9 9 9 10 8 10 11 19 11 12 14
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อสร้างคอลัมน์ใหม่ที่แสดงมูลค่ายอดขายสูงสุดต่อเนื่อง:
#add column that displays rolling maximum of sales df[' rolling_max '] = df. dirty . cummax () #view updated DataFrame print (df) day sales rolling_max 0 1 4 4 1 2 6 6 2 3 5 6 3 4 8 8 4 5 14 14 5 6 13 14 6 7 13 14 7 8 12 14 8 9 9 14 9 10 8 14 10 11 19 19 11 12 14 19
คอลัมน์ใหม่ชื่อ Rolling_max จะแสดงมูลค่ายอดขายสูงสุดโดยรวม
ตัวอย่างที่ 2: คำนวณค่าเลื่อนสูงสุดต่อกลุ่ม
สมมติว่าเรามี DataFrame แพนด้าต่อไปนี้ซึ่งแสดงยอดขายในแต่ละวันในร้านค้าสองแห่งที่แตกต่างกัน:
import pandas as pd #createDataFrame df = pd. DataFrame ({' store ': ['A', 'A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'B'], ' day ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], ' sales ': [4, 6, 5, 8, 14, 13, 13, 12, 9, 8, 19, 14]}) #view DataFrame print (df) store day sales 0 to 1 4 1 to 2 6 2 to 3 5 3 to 4 8 4 to 5 14 5 to 6 13 6 B 7 13 7 B 8 12 8 B 9 9 9 B 10 8 10 B 11 19 11 B 12 14
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อสร้างคอลัมน์ใหม่ที่แสดงมูลค่ายอดขายสูงสุดโดยรวมที่จัดกลุ่มตามร้านค้า:
#add column that displays rolling maximum of sales grouped by store df[' rolling_max '] = df. groupby (' store '). dirty . cummax () #view updated DataFrame print (df) store day sales rolling_max 0 A 1 4 4 1 to 2 6 6 2 to 3 5 6 3 to 4 8 8 4 to 5 14 14 5 to 6 13 14 6 B 7 13 13 7 B 8 12 13 8 B 9 9 13 9 B 10 8 13 10 B 11 19 19 11 B 12 14 19
คอลัมน์ใหม่ชื่อ Rolling_max จะแสดงมูลค่ายอดขายสูงสุดโดยรวม โดยจัดกลุ่มตามร้านค้า
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่น ๆ ในแพนด้า:
วิธีลบแถวใน Pandas DataFrame ตามเงื่อนไข
วิธีกรอง Pandas DataFrame ในหลายเงื่อนไข
วิธีใช้ตัวกรอง “NOT IN” ใน Pandas DataFrame