Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ความถี่สัมบูรณ์และสัมพัทธ์ใน Pandas


ในสถิติ คำว่า "ความถี่" บ่งบอกจำนวนครั้งที่ค่าเกิดขึ้นในตัวอย่างข้อมูลที่กำหนด เป็นซอฟต์แวร์สำหรับการวิเคราะห์ทางคณิตศาสตร์และวิทยาศาสตร์ 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