python - 如何为列中的每个唯一值获取数据框中的项目数
问题描述
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']
解决方案
您可以使用value_counts()
. 此函数用于获取pd.Series
包含唯一值的计数:
freq = df['STANME'].value_counts()
索引将是 STANME,值将是它的频率(第一个元素是最常出现的元素)。
请注意,默认情况下将排除 NA。
推荐阅读
- laravel - Laravel 分页太慢了
- javascript - jQuery根据选择的值显示文本框
- node.js - 如何在安装 laravel webpack 时修复 errno 71?
- django - 重写 BaseInlineFormset 的删除函数
- java - 如何将子类实例分配给通用(扩展父)对象?
- javascript - TypeError:无法读取反应组件中未定义的属性“getFieldDecorator”
- heatmap - Python Folium HeatMapWithTime:跨多个数据层的一次滑块
- react-native - 在循环内被起诉时,不会为正确的项目调用 onLayout
- kiosk-mode - 重新启动 ChromeBook 后,是否可以将已安装的 android 应用程序作为 kisok 应用程序启动?
- node.js - MongoDB:解析每个孩子并递归设置标志