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

批量创建数据子集:医疗数据集按机构拆分的技术问询

嘿,我完全懂你的需求——把包含医疗记录的大DataFrame按每个独立机构拆分成单独的小DataFrame,方便后续统计各机构的效率对吧?结合你提到的场景,我给你整理几个实用的方案:

方法1:用字典存储拆分后的DataFrames(最推荐)

这种方式不会让你的命名空间乱糟糟,还能方便地调用任意机构的数据,特别适合机构数量多的情况:

# 按原数据中的Facility字段分组
facility_groups = df.groupby('Facility')

# 用字典存储,键是机构名称,值是对应机构的完整DataFrame
facility_dfs = {facility_name: group_df for facility_name, group_df in facility_groups}

之后你想调用某机构的数据,直接写facility_dfs["XX医院"]就能拿到对应的DataFrame了,管理起来特别省心。

方法2:创建独立的变量(适合少量机构场景)

如果你确实需要给每个机构单独创建一个命名的DataFrame(比如df_XX医院),可以这么做,但要注意机构多的时候会让代码维护变麻烦:

for facility_name, group_df in df.groupby('Facility'):
    # 把机构名称转换成合法的变量名(替换空格、特殊字符)
    clean_var_name = f"df_{facility_name.replace(' ', '_').replace('/', '_')}"
    # 将分组后的DataFrame赋值为全局变量
    globals()[clean_var_name] = group_df
进阶:拆分后直接保存为文件(方便后续复用)

如果拆分后需要持久化存储,直接把每个机构的DataFrame存成独立文件更实用:

import os

# 创建专门的存储目录
save_folder = "facility_medical_records"
os.makedirs(save_folder, exist_ok=True)

for facility_name, group_df in df.groupby('Facility'):
    # 处理文件名,避免特殊字符导致报错
    clean_filename = f"{facility_name.replace(' ', '_').replace(':', '')}.csv"
    save_path = os.path.join(save_folder, clean_filename)
    # 保存为CSV(也可以用pickle存成二进制格式)
    group_df.to_csv(save_path, index=False)
额外提示:不用拆分也能做统计

如果你最终目标是统计各机构效率,其实可以直接用groupby+apply调用你的ratefunct函数,省掉拆分步骤:

# 对每个机构的分组直接应用统计函数,返回结果会自动按机构整理
facility_efficiency_results = df.groupby('Facility').apply(ratefunct)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:33:02