Pandas Groupโดย Average

Pandas Groupdoy Average



เมื่อเราบวกค่าตั้งแต่สองค่าขึ้นไปและผลรวมหารด้วยจำนวนค่าทั้งหมดที่รวมกัน ผลลัพธ์จะเป็นค่าเฉลี่ย Pandas Mean ส่งคืนค่าเฉลี่ยของข้อมูลหรือค่าตามแกนที่กำหนด ชุดที่มีค่าเฉลี่ยข้ามแกนจะถูกส่งกลับโดยแพนด้าหากใช้เมธอด mean() กับดาต้าเฟรม Pandas จะคืนค่าเป็นตัวเลข (ตัวเลขเดียว) หากใช้ “mean()” กับชุดข้อมูล สามารถใช้ฟังก์ชันกับหมวดหมู่ได้หลังจากสร้างกลุ่มของหมวดหมู่แล้ว เป็นแนวคิดง่ายๆ แต่เป็นเทคนิคที่มีประสิทธิภาพสูงซึ่งมักนำไปใช้ในวิทยาศาสตร์ข้อมูล ช่วยให้เราสามารถสร้างสรุปข้อมูลสำหรับแต่ละกลุ่ม ใช้การแก้ไขเฉพาะกลุ่ม และดำเนินการกรองข้อมูล ด้วยฟังก์ชัน groupby() อ็อบเจ็กต์สามารถแบ่งออกได้ สามารถใช้ฟังก์ชันได้ และสามารถรวมผลิตภัณฑ์เข้าด้วยกันได้ ชุดข้อมูลขนาดใหญ่สามารถจัดกลุ่มได้ และดำเนินการกับกลุ่มได้

จะใช้วิธี groupby.mean() ใน Pandas ได้อย่างไร

ในการคำนวณค่าเฉลี่ยของ dataframe หรือค่าเฉลี่ยของคอลัมน์เฉพาะของ dataframe เราสามารถใช้ฟังก์ชัน groupby.mean() เราจะสาธิตการใช้งานในตัวอย่างต่อไปนี้







ตัวอย่าง # 01: กำหนดค่าเฉลี่ยของคอลัมน์จำนวนเต็มเดียวโดยการจัดกลุ่มข้อมูลของคอลัมน์เดียว

การใช้ฟังก์ชัน pd.DataFrame() ขั้นแรกเราจะสร้าง dataframe เพื่อให้เราสามารถแบ่งข้อมูลของคอลัมน์หรือคอลัมน์ของ dataframe ออกเป็นกลุ่มๆ แล้วหาค่าเฉลี่ย ก่อนสร้าง data frame เราต้องนำเข้าโมดูล pandas พร้อมกับ numpy library





อย่างที่เห็น เราได้สร้างดาต้าเฟรมของเราโดยใช้พจนานุกรมแพนด้า เรามี 3 คอลัมน์ใน dataframe df ของเรา นั่นคือ 'items', 'manufacturer' และ 'quantity' ในคอลัมน์ 'items' เราได้จัดเก็บค่าต่างๆ ('shirt', 'tie', 'pants', 'shirt', 'tie', 'pants', 'shirt', 'pants', 'pants', ' เสมอกัน') ในขณะที่คอลัมน์ 'ผู้ผลิต' และ  'ปริมาณ' มีค่า ('อิตาลี', 'ฝรั่งเศส', 'จีน', 'ฝรั่งเศส',  'จีน', 'อิตาลี', 'จีน', 'อิตาลี' 'ฝรั่งเศส', 'จีน') และ (13, 16, 21, 32, 26, 41, 24, 42, 12, 15) ตามลำดับ มาจัดกลุ่มค่าในคอลัมน์ผู้ผลิตและกำหนดค่าปริมาณเฉลี่ยสำหรับผู้ผลิตแต่ละรายที่แตกต่างกัน





ค่าผู้ผลิต 'จีน' มีค่าปริมาณเฉลี่ย 21.5 ค่าปริมาณเฉลี่ยสำหรับ 'ฝรั่งเศส' คือ 20.0 และค่าปริมาณเฉลี่ยสำหรับ 'อิตาลี' คือ 32.0 นอกจากนี้เรายังสามารถระบุดัชนีไปยังผลลัพธ์โดยใช้ฟังก์ชัน reset_index กับฟังก์ชัน groupby.mean()



ตัวอย่าง # 02: ค้นหาค่าเฉลี่ยของคอลัมน์ลอยเดียวโดยการจัดกลุ่มข้อมูลของคอลัมน์เดียว

เราได้เห็นแล้วว่าเราสามารถหาค่าเฉลี่ยของคอลัมน์จำนวนเต็มหลังจากจัดกลุ่มข้อมูลได้อย่างไร ทีนี้มาลองคอลัมน์ประเภทข้อมูลอื่นเช่น float dataframe ที่มีอย่างน้อยหนึ่งคอลัมน์ที่มีค่า float จะถูกสร้างขึ้นโดยใช้ฟังก์ชัน pd.DataFrame()

โดยการวางพจนานุกรมไว้ใน pd.DataFrame() เราได้สร้างดาต้าเฟรมที่มีสามคอลัมน์ คอลัมน์ 'ชื่อ' กำลังจัดเก็บชื่อของผู้เล่นสุ่มบางคน ('แซม', 'เจย์', 'ลีโอ', 'ไมค์', 'วิล', 'บิลลี่', 'จอนนี่', 'ลาร่า', 'ฮันนา' 'โทนี่') คอลัมน์ 'ทีม' ที่เป็นตัวแทนของทีมที่ผู้เล่นแต่ละคนเป็นสมาชิก ('A', 'A', 'B',  'A', 'B', 'A', 'C', 'B ', 'C', 'C') และคอลัมน์ 'ความสูง' จะจัดเก็บความสูงของผู้เล่นแต่ละคนเป็นค่าลอยตัว (5.6, 5.4, 6.3, 5.2, 5.5, 6.4, 5.6, 5.8, 6.0, 5.2) มาจัดกลุ่มข้อมูลในคอลัมน์ 'ทีม' และกำหนดค่าความสูงเฉลี่ยสำหรับค่า 'ทีม' ที่แตกต่างกัน

คุณจะเห็นว่าค่าความสูงเฉลี่ยของผู้เล่นทีม A คือ 5.65 ในขณะที่ความสูงเฉลี่ยของผู้เล่นในทีม B และ C คือ 5.866 และ 5.6 ตามลำดับ

ตัวอย่าง # 03: กำหนดค่าเฉลี่ยของหลายคอลัมน์โดยใช้ฟังก์ชัน groupby.mean()

ในตัวอย่างก่อนหน้านี้ เรากำหนดค่าเฉลี่ยของคอลัมน์เดียว อย่างไรก็ตาม สามารถกำหนดค่าเฉลี่ยของคอลัมน์จำนวนมากสำหรับแต่ละกลุ่มได้ มาสร้าง dataframe ที่มีคอลัมน์ตัวเลขมากกว่าหนึ่งคอลัมน์กัน หลังจากนำเข้าโมดูลแพนด้าและ numpy

ใน dataframe ที่สร้างขึ้นใหม่ มีสามคอลัมน์ที่มีป้ายกำกับ 'name', 'score' และ 'matches' ชื่อคอลัมน์ที่มีค่าข้อมูลเป็นสตริง ('Ron', 'Jim', 'Dany', 'Jim', 'Jim', 'Dany', 'Ron', 'Ron', 'Dany', 'Jim' ) ในขณะที่ 'คะแนน' และ 'การแข่งขัน' ประกอบด้วยข้อมูลตัวเลขเป็น (3, 4, 2, 4, 1, 5, 2, 3, 1, 2) และ (2, 3, 1, 2, 1, 3 , 4, 1, 2, 1). ตอนนี้เรามาค้นหาค่าเฉลี่ยของ 'คะแนน' และ 'การจับคู่' ของคอลัมน์หลังจากจัดกลุ่มข้อมูลของคอลัมน์ 'ชื่อ' ฟังก์ชัน groupby.mean() จะถูกใช้สำหรับสิ่งนี้

จะสังเกตได้ว่ากลุ่ม 'ดานี่' มีคะแนนเฉลี่ย 2.66 ใน 2.00 แมทช์ กลุ่มจิมมีคะแนนเฉลี่ย 2.75 และค่าเฉลี่ยของการแข่งขันที่เล่นคือ 1.75 ในขณะที่กลุ่ม 'รอน' มีคะแนนเฉลี่ย 2.66 และค่าเฉลี่ยของการแข่งขันที่เล่นคือ 2.33

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

ผลผลิตเท่าเดิม

ตัวอย่าง # 04: กำหนดค่าเฉลี่ยของคอลัมน์เฉพาะโดยการจัดกลุ่มหลายคอลัมน์

ในตัวอย่างที่ 1, 2 และ 3 เราได้จัดกลุ่มค่าหรือข้อมูลของคอลัมน์เดียว ตอนนี้เราจะจัดกลุ่มหลายคอลัมน์โดยใช้รายการป้ายกำกับคอลัมน์ภายในฟังก์ชัน groupby() จากนั้นเราจะหาค่าเฉลี่ยสำหรับแต่ละกลุ่ม พจนานุกรม 'd' จะถูกส่งต่อภายในฟังก์ชัน pd.Dataframe() เป็นอินพุตเพื่อสร้างดาต้าเฟรม

เราได้สร้าง dataframe ที่จำเป็นแล้ว คอลัมน์ 'sports' จัดเก็บชื่อกีฬาบางประเภท ('Badminton', 'football', 'tennis', 'basketball', 'football', 'tennis', 'basketball', 'football', 'Badminton', ' บาสเก็ตบอล', 'บาสเก็ตบอล', 'เทนนิส'), ชื่อประเทศ ('จีน', 'รัสเซีย', 'อิตาลี', 'สเปน', 'รัสเซีย', 'อิตาลี', 'จีน', 'อิตาลี', ' สเปน 'จีน' 'รัสเซีย' 'อิตาลี') ถูกเก็บไว้ในคอลัมน์ 'ประเทศ' ในขณะที่คอลัมน์ 'ชนะ' เราได้บันทึกจำนวนการแข่งขันที่แต่ละประเทศชนะในแต่ละกีฬา (13, 10, 6, 7, 10, 12, 7, 11, 8, 13, 11, 6) ลองใช้ฟังก์ชัน groupby.mean() เพื่อค้นหาค่าเฉลี่ยของค่าคอลัมน์ 'win' โดยจัดกลุ่มคอลัมน์ 'sports' และ 'country'

ฟังก์ชันนี้กำหนดค่าเฉลี่ยของค่าคอลัมน์ 'ชนะ' สำหรับแต่ละกีฬาในประเทศได้สำเร็จ dataframe ที่จัดกลุ่มตามสามารถรีเซ็ตได้โดยใช้ฟังก์ชัน reset_index() ซึ่งจะสร้างดัชนีใหม่ด้วย ทำให้มีโครงสร้าง dataframe ที่เหมาะสม

มีการเพิ่มดัชนีสำหรับแถวของ dataframe แต่ละแถว ในการจัดเรียงผลลัพธ์ในตารางที่น่าสนใจ เรายังสามารถใช้ฟังก์ชัน pivot()

บทสรุป

ในบทช่วยสอนนี้ เราได้พูดถึงว่าค่าเฉลี่ยหรือค่าเฉลี่ยของตัวเลขคืออะไร และวิธีค้นหาค่าเฉลี่ยของคอลัมน์เฉพาะ (อย่างน้อยหนึ่งคอลัมน์) หลังจากจัดกลุ่มคอลัมน์หรือคอลัมน์ของดาต้าเฟรม เราได้นำตัวอย่างบางส่วนมาใช้ในบทความนี้เพื่อสอนวิธีกำหนดค่าเฉลี่ยของจำนวนเต็มหรือคอลัมน์จำนวนเต็มเดียวโดยการจัดกลุ่มข้อมูลของคอลัมน์เดียว วิธีการกำหนดค่าเฉลี่ยของหลายคอลัมน์โดยใช้ฟังก์ชัน groupby.mean() และวิธีการกำหนดค่าเฉลี่ยของคอลัมน์เฉพาะโดยการจัดกลุ่มหลายคอลัมน์