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
广告