You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas实现类似SQL GROUP BY COUNT的DataFrame统计?

Pandas实现SQL GROUP BY COUNT的正确方式

你的代码无法达成目标,原因是casual_filter['start_station_name']是原始逐行数据,而value_counts()返回的是聚合后的结果(每个车站对应一个计数),两者长度、索引都不匹配,直接用assign会导致数据对齐错误,出现大量缺失值。

以下是两种正确实现方式:

方法一:贴近SQL逻辑的groupby写法

casual_station_name = casual_filter.groupby('start_station_name')\
                                  .size()\
                                  .reset_index(name='total_ride')
  • groupby('start_station_name')按车站名称分组
  • size()统计每组的行数(对应SQL里的COUNT(*))
  • reset_index(name='total_ride')将分组索引转为普通列,并指定计数列的名称为total_ride

方法二:利用value_counts快速转换

casual_station_name = casual_filter['start_station_name'].value_counts()\
                                                         .reset_index()\
                                                         .rename(columns={'start_station_name': 'station_name', 'count': 'total_ride'})
  • value_counts()直接返回每个车站的出现次数
  • reset_index()将索引(车站名)转为列
  • rename()调整列名到你需要的格式

注意:assign方法适合给现有DataFrame添加列,并不适合做聚合操作生成新的统计DataFrame,所以这里不推荐用assign实现需求。

内容的提问来源于stack exchange,提问作者Cornelias

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 10:25:36