วิธีการคำนวณค่าสูงสุดของการเลื่อนในหมีแพนด้า (พร้อมตัวอย่าง)


คุณสามารถใช้วิธีการต่อไปนี้เพื่อคำนวณค่าสูงสุดที่กลิ้งใน 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

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *