สมมติว่าคุณมี DataFrame และต้องการนับจำนวนพนักงานแยกตามตำแหน่งงาน (Designation)
วิธีแก้ปัญหา
- สร้าง DataFrame ที่มีคอลัมน์ Designation
- ใช้
df.groupby('Designation').count()นับจำนวนต่อกลุ่ม
ตัวอย่างโค้ด
import pandas as pd
data = {'Id': [1, 2, 3, 4, 5],
'Designation': ['architect', 'scientist', 'programmer', 'scientist', 'programmer']}
df = pd.DataFrame(data)
print("DataFrame:\n", df)
print("\nจำนวนรายการต่อตำแหน่งงาน:")
print(df.groupby('Designation').count())
ผลลัพธ์
DataFrame:
Id Designation
0 1 architect
1 2 scientist
2 3 programmer
3 4 scientist
4 5 programmer
จำนวนรายการต่อตำแหน่งงาน:
Id
Designation
architect 1
programmer 2
scientist 2
คำอธิบาย:
groupby('Designation')จัดกลุ่มแถวตามค่าในคอลัมน์ Designation.count()นับจำนวน non-null values ในแต่ละคอลัมน์ต่อกลุ่ม- ผลลัพธ์แสดง column 'Id' เพราะเป็นคอลัมน์ตัวเลขที่นับได้ (คอลัมน์ Designation เป็น index แล้ว)
- ใช้
size()แทนcount()ถ้าต้องการนับรวม NaN ด้วย - ใช้
df['Designation'].value_counts()ได้ผลลัพธ์คล้ายกันแต่เป็น Series