Pandas中的绝对频率和相对频率
在统计学中,“频率”一词表示在给定数据样本中某个值出现的次数。作为一种用于数学和科学分析的软件,Pandas具有许多内置方法来从给定的样本中计算频率。
绝对频率 它与频率相同,其中计算数据元素发生的次数。在下面的示例中,我们仅计算给定DataFrame中城市名称出现的次数,并将其报告为频率。
方法1 - 我们使用名为.value_counts的pandas方法。
示例
import pandas as pd
# 创建数据框
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 - 我们使用名为.crosstab的pandas方法。
示例
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
相对频率 - 这是在给定数据样本中给定频率和观察总数之间的分数。因此,该值可以是浮点值,也可以表示为百分数。要找出它,我们首先按照第一种方法计算频率,然后使用len()函数查找总观察数。
示例
import pandas as pd
# 创建数据框
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