ในการนับค่า Groupby ให้ใช้เมธอด groupby(), size() และ unstack() ของ Pandas DataFrame ขั้นแรก ให้สร้าง DataFrame ที่มี 3 คอลัมน์ -
dataFrame = pd.DataFrame({ 'Product Category': ['Computer', 'Mobile Phone', 'Electronics', 'Electronics', 'Computer', 'Mobile Phone'],'Product Name': ['Keyboard', 'Charger', 'SmartTV', 'Camera', 'Graphic Card', 'Earphone'],'Quantity': [10, 50, 10, 20, 25, 50]})
ตอนนี้ ค่า groupby นับด้วยเมธอด groupby() สำหรับการนับ ให้ใช้ size() และ unstack() unstack() ให้ระดับใหม่ของป้ายกำกับคอลัมน์ -
dataFrame = dataFrame.groupby(['Product Category', 'Product Name', 'Quantity']).size().unstack(fill_value=0)
ตัวอย่าง
ต่อไปนี้เป็นรหัสที่สมบูรณ์ -
import pandas as pd # create a dataframe with 3 columns dataFrame = pd.DataFrame({ 'Product Category': ['Computer', 'Mobile Phone', 'Electronics', 'Electronics', 'Computer', 'Mobile Phone'],'Product Name': ['Keyboard', 'Charger', 'SmartTV', 'Camera', 'Graphic Card', 'Earphone'],'Quantity': [10, 50, 10, 20, 25, 50]}) # dataframe print"Dataframe...\n",dataFrame # count and unstack dataFrame = dataFrame.groupby(['Product Category', 'Product Name', 'Quantity']).size().unstack(fill_value=0) print"\nResultant DataFrame...\n",dataFrame
ผลลัพธ์
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
Dataframe... Product Category Product Name Quantity 0 Computer Keyboard 10 1 Mobile Phone Charger 50 2 Electronics SmartTV 10 3 Electronics Camera 20 4 Computer Graphic Card 25 5 Mobile Phone Earphone 50 Resultant DataFrame... Quantity 10 20 25 50 Product Category Product Name Computer Graphic Card 0 0 1 0 Keyboard 1 0 0 0 Electronics Camera 0 1 0 0 SmartTV 1 0 0 0 Mobile Phone Charger 0 0 0 1 Earphone 0 0 0 1