Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Pandas GroupBy – นับจำนวนการเกิดของแต่ละการรวมกัน

เพื่อจัดกลุ่มคอลัมน์และนับจำนวนการเกิดของแต่ละการรวมกัน (combination) ใน Pandas ใช้ DataFrame.groupby() ร่วมกับ size() เมธอด groupby() แยก DataFrame ออกเป็นกลุ่มๆ

ขั้นตอน

  • สร้างข้อมูลสองมิติ df1

  • พิมพ์ DataFrame ต้นทาง df1

  • สร้างข้อมูลอีกชุด df2

  • พิมพ์ DataFrame ต้นทาง df2

  • หาค่าที่ซ้ำกันด้วยเมธอด merge()

  • พิมพ์ DataFrame ที่ซ้ำกัน

ตัวอย่าง

import pandas as pd
# initializing the data
mylist = {'Car': ['BMW', 'Mercedes', 'Lamborgini', 'Audi', 'Mercedes', 'Porsche', 'RollsRoyce', 'BMW'],
          'Place': ['Delhi', 'Hyderabad', 'Chandigarh', 'Bangalore', 'Hyderabad', 'Mumbai', 'Mumbai', 'Delhi'],
          'Sold': [95, 80, 80, 75, 90, 90, 95, 50]}
# DataFrame
dataFrame = pd.DataFrame(mylist, columns=['Car', 'Place', 'Sold'])
print(dataFrame)
print("Counting the occurrences...")
res = dataFrame.groupby(['Car', 'Place']).size()
# Displaying the occurrences
print(res)

ผลลัพธ์

    Car        Place  Sold
0   BMW        Delhi    95
1   Mercedes   Hyderabad 80
2   Lamborgini Chandigarh 80
3   Audi       Bangalore 75
4   Mercedes   Hyderabad 90
5   Porsche    Mumbai    90
6   RollsRoyce Mumbai    95
7   BMW        Delhi     50
Counting the occurrences...
Car        Place
Audi       Bangalore    1
BMW        Delhi        2
Lamborgini Chandigarh   1
Mercedes   Hyderabad    2
Porsche    Mumbai       1
RollsRoyce Mumbai       1
dtype: int64

คำอธิบาย

  • นำเข้า pandas สร้างข้อมูล dictionary แล้วแปลงเป็น DataFrame

  • ใช้ groupby(['Car', 'Place']) จัดกลุ่มตามคู่ Car และ Place

  • ใช้ .size() นับจำนวนแถวในแต่ละกลุ่ม

  • แสดงผลจำนวนการเกิดของแต่ละคู่ (BMW-Delhi 2 ครั้ง, Mercedes-Hyderabad 2 ครั้ง, อื่นๆ 1 ครั้ง)