Pandas 中的绝对频率和相对频率


在统计学中,“频率”一词表示给定数据样本中某个值出现的次数。作为一种用于数学和科学分析的软件,Pandas 具有许多内置方法来计算给定样本的频率。

绝对频率 它与频率相同,其中计算数据元素出现的次数。在下面的示例中,我们只需计算城市名称在一个给定的 DataFrame 中出现的次数,并将其报告为频率。

方法 1 - 我们使用名为 .value_counts 的 pandas 方法。

示例

import pandas as pd
# Create Data Frame
data = ["Chandigarh","Hyderabad","Pune","Pune","Chandigarh","Pune"]
# use the method .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
# Create Data Frame
data = ["Chandigarh","Hyderabad","Pune","Pune","Chandigarh","Pune"]
# use the method .value_counts()
df = pd.Series(data).value_counts()
print(df/len(data))

输出

运行以上代码将得到以下结果:

Pune 0.500000
Chandigarh 0.333333
Hyderabad 0.166667
dtype: float64

更新于: 2020-07-03

686 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告