วิธีการคำนวณค่าเฉลี่ยถ่วงน้ำหนักในหมีแพนด้า


คุณสามารถใช้ฟังก์ชันต่อไปนี้เพื่อคำนวณค่าเฉลี่ยถ่วงน้ำหนักใน Pandas:

 def w_avg(df, values, weights):
    d = df[values]
    w = df[weights]
    return (d*w). sum () / w. sum ()

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่างที่ 1: ค่าเฉลี่ยถ่วงน้ำหนักของแพนด้า

รหัสต่อไปนี้สาธิตวิธีใช้ฟังก์ชันถัวเฉลี่ยถ่วงน้ำหนักในการคำนวณค่าเฉลี่ยถ่วงน้ำหนักสำหรับชุดข้อมูลที่กำหนด โดยใช้ “ราคา” เป็นค่าและ “จำนวน” เป็นน้ำหนัก:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' sales_rep ': ['A', 'A', 'A', 'B', 'B', 'B'],
                   ' price ': [8, 5, 6, 7, 12, 14],
                   ' amount ': [1, 3, 2, 2, 5, 4]})

#view DataFrame
df

	sales_rep price amount
0 to 8 1
1 to 5 3
2 to 6 2
3 B 7 2
4 B 12 5
5 B 14 4

#find weighted average of price
w_avg(df, ' price ', ' amount ')

9.705882352941176

ค่าเฉลี่ยถ่วงน้ำหนักของ “ราคา” กลายเป็น 9,706 .

ตัวอย่างที่ 2: Groupby และค่าเฉลี่ยถ่วงน้ำหนักที่ Pandas

รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชันถัวเฉลี่ยถ่วงน้ำหนักเพื่อคำนวณราคาถัวเฉลี่ยถ่วงน้ำหนัก ซึ่ง จัดกลุ่มตาม พนักงานขาย:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' sales_rep ': ['A', 'A', 'A', 'B', 'B', 'B'],
                   ' price ': [8, 5, 6, 7, 12, 14],
                   ' amount ': [1, 3, 2, 2, 5, 4]})

#find weighted average of price, grouped by sales rep
df. groupby (' sales_rep '). apply (w_avg, ' price ', ' amount ')

sales_rep
A 5.833333
B 11.818182
dtype:float64

เราสามารถเห็นสิ่งต่อไปนี้:

  • ค่าเฉลี่ยถ่วงน้ำหนักของ “ราคา” สำหรับพนักงานขาย A คือ 5,833
  • ค่าเฉลี่ยถ่วงน้ำหนักของ “ราคาตัวแทนขาย B” คือ 11,818

แหล่งข้อมูลเพิ่มเติม

วิธีเปรียบเทียบสองคอลัมน์ใน Pandas
วิธีคำนวณผลรวมของคอลัมน์ใน Pandas
วิธีการคำนวณค่าเฉลี่ยของคอลัมน์ใน Pandas

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

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