如何基于DataFrame的一列统计另一列中值的出现频次?
统计每个街区的交通标志数量
针对你提到的需求,完全不需要逐个街区编写查询,用Pandas的内置函数就能高效完成统计,以下是几种实用方法:
分组统计(返回长表格式)
用groupby按街区和交通标志分组后统计数量,结果会以每行对应一个街区+标志组合的形式呈现:import pandas as pd # 假设你的DataFrame名为df,列名为'街区'和'交通标志' result_df = df.groupby(['街区', '交通标志']).size().reset_index(name='数量')透视表统计(返回宽表格式)
如果你想直观看到每个街区所有交通标志的数量分布,用pivot_table生成宽表,每行对应一个街区,每列对应一种标志:pivot_result = df.pivot_table( index='街区', columns='交通标志', aggfunc='size', fill_value=0 )交叉表统计(快速生成计数矩阵)
Pandas的crosstab函数专门用于此类交叉计数场景,用法更简洁:cross_result = pd.crosstab(df['街区'], df['交通标志'])
以上三种方法都会自动遍历所有街区和标志类型,一次性完成全量统计,完全不用手动处理单个街区。
内容的提问来源于stack exchange,提问作者Holden Gent
相关产品推荐
相关产品推荐

