首页 > 解决方案 > 如何为列中的每个唯一值获取数据框中的项目数

问题描述

Dataframe 中的一列是STANME(State name)。我想用 index =STNAME和 value = DataFrame 中的条目数创建一个熊猫系列。例如示例输出如下所示

STNAME
Michigan           83
Arizona            15
Wisconsin          72
Montana            56
North Carolina    100
Utah               29
New Jersey         21
Wyoming            23

我目前的解决方案如下,但由于需要选择任意列、重命名此列等,似乎有点笨拙。想知道是否有更好的方法来做到这一点

grouped=df.groupby('STNAME')
# Note: County is an arbitrary column name I picked from the dataframe
grouped_df = grouped['COUNTY'].agg(np.size)
grouped_df.columns = ['Num Counties']

标签: pythonpandasdataframepandas-groupby

解决方案


您可以使用value_counts(). 此函数用于获取pd.Series包含唯一值的计数:

freq = df['STANME'].value_counts()

索引将是 STANME,值将是它的频率(第一个元素是最常出现的元素)。

请注意,默认情况下将排除 NA。


推荐阅读