ในสถิติ คำว่า "ความถี่" บ่งบอกจำนวนครั้งที่ค่าเกิดขึ้นในตัวอย่างข้อมูลที่กำหนด เป็นซอฟต์แวร์สำหรับการวิเคราะห์ทางคณิตศาสตร์และวิทยาศาสตร์ Pandas มีเมธอดในตัวมากมายสำหรับคำนวณความถี่จากตัวอย่างที่กำหนด
ความถี่สัมบูรณ์ (Absolute Frequency) เหมือนกับแค่ความถี่ โดยคำนวณจำนวนครั้งที่องค์ประกอบข้อมูลเกิดขึ้น ในตัวอย่างด้านล่าง เราเพียงนับจำนวนครั้งที่ชื่อเมืองปรากฏใน DataFrame ที่กำหนดและรายงานเป็นความถี่
วิธีที่ 1 - ใช้เมธอดของ pandas ชื่อ .value_counts
ตัวอย่างโค้ด
import pandas as pd # สร้าง Data Frame data = ["Chandigarh", "Hyderabad", "Pune", "Pune", "Chandigarh", "Pune"] # ใช้เมธอด .value_counts() df = pd.Series(data).value_counts() print(df)
ผลลัพธ์
การรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้ -
Pune 3 Chandigarh 2 Hyderabad 1 dtype: int64
วิธีที่ 2 - ใช้เมธอดของ pandas ชื่อ .crosstab
ตัวอย่างโค้ด
import pandas as pd data = ["Chandigarh", "Hyderabad", "Pune", "Pune", "Chandigarh", "Pune"] df = pd.DataFrame(data, columns=["City"]) tab_result = pd.crosstab(index=df["City"], columns=["count"]) print(tab_result)
ผลลัพธ์
การรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้ -
col_0 count City Chandigarh 2 Hyderabad 1 Pune 3
ความถี่สัมพัทธ์ (Relative Frequency) - เป็นเศษส่วนระหว่างความถี่ที่กำหนดกับจำนวนการสังเกตทั้งหมดในตัวอย่างข้อมูล ดังนั้นค่าอาจเป็นค่าทศนิยมซึ่งสามารถแสดงเป็นเปอร์เซ็นต์ได้ เพื่อหาค่านี้ เราคำนวณความถี่ตามวิธีแรก แล้วหารด้วยจำนวนการสังเกตทั้งหมด ซึ่งหาได้โดยใช้ฟังก์ชัน len()
ตัวอย่างโค้ด
import pandas as pd # สร้าง Data Frame data = ["Chandigarh", "Hyderabad", "Pune", "Pune", "Chandigarh", "Pune"] # ใช้เมธอด .value_counts() df = pd.Series(data).value_counts() print(df / len(data))
ผลลัพธ์
การรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้ -
Pune 0.500000 Chandigarh 0.333333 Hyderabad 0.166667 dtype: float64