เมธอด groupby().first() ใช้สำหรับดึงแถวแรกของแต่ละกลุ่มหลังจากจัดกลุ่มข้อมูลแล้ว ซึ่งเหมาะสำหรับการหาค่า "first occurrence" หรือรายการแรกของแต่ละประเภท
ขั้นตอนการทำงาน
1. นำเข้าไลบรารี
import pandas as pd
2. สร้าง DataFrame มีข้อมูลซ้ำในคอลัมน์ Car
dataFrame = pd.DataFrame({
"Car": ['BMW', 'Lexus', 'BMW', 'Tesla', 'Lexus', 'Tesla'],
"Place": ['Delhi', 'Bangalore', 'Pune', 'Punjab', 'Chandigarh', 'Mumbai'],
"Units": [100, 150, 50, 80, 110, 90]
})
3. จัดกลุ่มตามคอลัมน์ Car และหาค่าแรก
groupDF = dataFrame.groupby("Car")
res = groupDF.first().reset_index()
โค้ดตัวอย่างสมบูรณ์
import pandas as pd
dataFrame = pd.DataFrame({
"Car": ['BMW', 'Lexus', 'BMW', 'Tesla', 'Lexus', 'Tesla'],
"Place": ['Delhi', 'Bangalore', 'Pune', 'Punjab', 'Chandigarh', 'Mumbai'],
"Units": [100, 150, 50, 80, 110, 90]
})
print("DataFrame:\n", dataFrame)
# จัดกลุ่มและหาค่าแรก
groupDF = dataFrame.groupby("Car")
res = groupDF.first().reset_index()
print("\nFirst of group values:\n", res)
ผลลัพธ์
DataFrame:
Car Place Units
0 BMW Delhi 100
1 Lexus Bangalore 150
2 BMW Pune 50
3 Tesla Punjab 80
4 Lexus Chandigarh 110
5 Tesla Mumbai 90
First of group values:
Car Place Units
0 BMW Delhi 100
1 Lexus Bangalore 150
2 Tesla Punjab 80
คำอธิบาย
groupby("Car")จัดกลุ่มแถวที่มีค่า Car เหมือนกัน.first()เลือกแถวแรกของแต่ละกลุ่ม (ตามลำดับเดิมใน DataFrame).reset_index()แปลง index กลับเป็นคอลัมน์ปกติ- คู่กับ
.last()สำหรับค่าสุดท้าย และ.nth(n)สำหรับค่าลำดับที่ n
กรณีใช้งานจริง
- หาลูกค้าครั้งแรกที่ซื้อสินค้าแต่ละประเภท
- ดึงบันทึกแรกของแต่ละเซ็นเซอร์ใน Time-series
- กำจัดข้อมูลซ้ำโดยเก็บเฉพาะรายการแรก