เพื่อจัดกลุ่มคอลัมน์และนับจำนวนการเกิดของแต่ละการรวมกัน (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 ครั้ง)