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

如何在Python Pandas DataFrame中为城市字段添加医院计数新列

统计各城市医院数量并添加至原DataFrame

问题描述

我有一个名为hospitals的Pandas DataFrame,包含hospital_id、name、city等字段。想要统计每个城市的医院数量,并将该结果作为名为Count的新列添加到原DataFrame中。尝试了以下代码但未成功:

print(df.groupby('city').agg({
    'city': pd.Series.nunique
}))

原DataFrame示例:

hospital_id    name                    city
0             1    Cassel Hospital         London
1             2    Oaklands Hospital       Manchester
2             3    Bromley Hospital        London

期望得到的DataFrame格式:

hospital_id    name                    city    Count
0             1    Cassel Hospital         London       2
1             2    Oaklands Hospital       Manchester   1
2             3    Bromley Hospital        London       2

解决方法

你之前的代码仅统计了各城市的唯一值数量,并未将结果关联回原DataFrame。可以使用groupby结合transform方法,直接为原DataFrame添加目标列:

实现代码

# 为原DataFrame添加Count列,统计对应城市的医院数量
hospitals['Count'] = hospitals.groupby('city')['city'].transform('count')

代码说明

  • groupby('city'):按city字段对DataFrame分组
  • ['city'].transform('count'):对每个分组计算记录行数(即该城市的医院总数),并将结果按原DataFrame的索引映射,确保每一行都能匹配到对应城市的数量
  • 直接将结果赋值给hospitals['Count'],即可得到符合预期的DataFrame

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:35:14