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

如何基于hosp(医院ID)与zip(邮编)数据构建患者计数矩阵?

嘿,我来帮你搞定这个患者数量矩阵的问题!根据你的需求,我整理了几种常用工具的实现方法,你可以根据自己的熟悉程度选择:

方法1:用Excel实现(适合非编程用户)

这是最上手的方式,不用写代码就能搞定:

  • 第一步:先把你的数据整理成规范的两列格式——一列是hosp(医院ID),一列是zip(邮编),每一行对应一个患者的就诊记录(同一个患者对应医院和邮编就占一行)
  • 第二步:选中整个数据区域,点击「插入」选项卡中的「数据透视表」,按提示完成基础设置后,在右侧字段面板里:
    • 把hosp拖到「行」区域
    • 把zip拖到「列」区域
    • 把zip拖到「值」区域,然后右键值区域的单元格,选择「值字段设置」,把汇总方式改成「计数」(默认可能是求和,要切换过来)
  • 第三步:最后可以把矩阵里的空值批量替换成0,这样看起来更直观,行是医院、列是邮编、单元格就是对应患者数量的矩阵就完成啦!
方法2:用Python Pandas实现(适合编程用户)

用Pandas的交叉表函数可以快速生成目标矩阵,代码示例如下:

import pandas as pd

# 先模拟你的数据结构(实际使用时可以用pd.read_csv读取本地数据)
data = {
    'hosp': ['H001', 'H001', 'H002', 'H001', 'H002', 'H002'],
    'zip': ['10001', '10002', '10001', '10001', '10003', '10001']
}
df = pd.DataFrame(data)

# 生成医院-邮编的患者计数矩阵
patient_matrix = pd.crosstab(df['hosp'], df['zip'])

# 把空值填充为0,转成整数格式更贴合需求
patient_matrix = patient_matrix.fillna(0).astype(int)

# 打印查看结果
print(patient_matrix)

运行后会直接输出行是医院ID、列是邮编、单元格为对应患者数量的矩阵,完全符合你的需求。

方法3:用SQL实现(如果数据存储在数据库中)

如果你的数据在数据库里,可以用条件聚合来生成矩阵,以MySQL为例:

SELECT 
    hosp,
    COUNT(CASE WHEN zip = '10001' THEN 1 END) AS `10001`,
    COUNT(CASE WHEN zip = '10002' THEN 1 END) AS `10002`,
    COUNT(CASE WHEN zip = '10003' THEN 1 END) AS `10003`
    -- 这里可以继续添加你数据中存在的所有邮编
FROM patient_records
GROUP BY hosp;

如果是PostgreSQL等数据库,还可以用专门的crosstab函数来实现动态透视,不过条件聚合的方式兼容性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 06:56:23