Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tần suất tuyệt đối và tương đối trong Pandas


Trong thống kê, tần suất tuyệt đối = số lần xuất hiện. Tần suất tương đối = tần suất tuyệt đối / tổng quan sát (thường biểu diễn % hoặc tỷ lệ).

Dữ liệu mẫu

import pandas as pd
data = ["Chandigarh","Hyderabad","Pune","Pune","Chandigarh","Pune"]

Cách 1: value_counts() - Tần suất tuyệt đối

abs_freq = pd.Series(data).value_counts()
print("Tần suất tuyệt đối:")
print(abs_freq)

Kết quả

Pune          3
Chandigarh    2
Hyderabad     1
dtype: int64

Cách 2: crosstab() - Bảng chéo

df = pd.DataFrame(data, columns=["City"])
tab = pd.crosstab(index=df["City"], columns=["count"])
print(tab)

Kết quả

col_0  count
City
Chandigarh     2
Hyderabad      1
Pune           3

Tần suất tương đối (Relative Frequency)

rel_freq = abs_freq / len(data)
print("Tần suất tương đối:")
print(rel_freq)

# Dạng phần trăm
print("\nPhần trăm:")
print((rel_freq * 100).round(2).astype(str) + "%")

Kết quả

Tần suất tương đối:
Pune          0.500000
Chandigarh    0.333333
Hyderabad     0.166667
dtype: float64

Phần trăm:
Pune          50.0%
Chandigarh    33.33%
Hyderabad     16.67%

Kết luận

Dùng value_counts() cho tần suất tuyệt đối, chia cho len(data) cho tương đối. crosstab() hữu ích khi phân tích đa biến.