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

如何补全疫苗数据的所有分组条目并计算正确累积接种量?

补全疫苗接种数据的分组缺失条目并填充0

要补全每个district+月度visit_date下的所有age_group和sex组合,核心是生成所有可能的分组维度组合,再和现有数据做关联填充,具体步骤如下:

1. 定义所有维度的取值范围

先明确已知的固定维度取值,再从现有结果res1中提取动态维度的唯一值:

# 已知的固定维度取值
age_groups = ['18-34', '35-49', '50-59', '60+']
sexes = ['Male', 'Female', 'Unidentified']

# 从res1中提取其他维度的唯一值
districts = res1['district'].unique()
provinces = res1['province'].unique()
months = res1['visit_date'].unique()

2. 生成全量分组组合

利用pd.MultiIndex.from_product生成所有维度的笛卡尔积,确保每个可能的组合都被覆盖:

# 生成所有可能的分组组合
all_combinations = pd.MultiIndex.from_product(
    [districts, months, provinces, age_groups, sexes],
    names=['district', 'visit_date', 'province', 'age_group', 'sex']
).to_frame(index=False)

3. 关联现有数据并填充缺失值

将全量组合与res1左连接,把缺失的月度接种人数填充为0:

# 左连接保留所有组合,缺失的接种量填充为0
full_data = pd.merge(all_combinations, res1, on=['district', 'visit_date', 'province', 'age_group', 'sex'], how='left')
full_data['total_number_individuals_vaccinated'] = full_data['total_number_individuals_vaccinated'].fillna(0)

4. 重新计算累积接种量

按分组维度+时间排序后,重新计算累积值(此时所有组合都存在,累积计算不会中断):

# 按分组维度和时间排序
full_data = full_data.sort_values(['district', 'age_group', 'sex', 'visit_date'])
# 计算累积接种量
full_data['cumulative_vaccinations'] = full_data.groupby(['district', 'age_group', 'sex'])['total_number_individuals_vaccinated'].cumsum()

处理完成后,每个district和月度visit_date下都会包含所有age_group与sex的组合,缺失条目的月度接种量为0,累积量会连续计算(缺失月份的累积量等于上一月的数值)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 02:45:49