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

如何用对应国家的IncidenceOfMalaria最小值填充该国家的空值?

解决方案

先修正你代码里的变量名拼写错误(malarial_data应该和前面定义的malaria_data保持一致),接下来可以通过以下步骤完成需求,同时给出更高效的实现方案:

1. 直接用分组transform完成填充

不需要单独生成分组最小值的Series再映射,transform方法可以直接对每个国家的分组数据应用填充逻辑,返回和原数据长度匹配的结果,一步到位:

import pandas as pd

malaria_data = pd.read_csv('DatasetAfricaMalaria.csv')
# 按国家分组,用当前组的最小值填充组内NaN
malaria_data['IncidenceOfMalaria'] = malaria_data.groupby('CountryName')['IncidenceOfMalaria'].transform(
    lambda group: group.fillna(group.min())
)

2. 处理极端情况(可选)

如果存在某个国家的IncidenceOfMalaria列全为NaN的情况,group.min()也会返回NaN,此时可以额外用整列的最小值填充剩余空值:

# 先按国家最小值填充,再处理全NaN的国家
overall_min = malaria_data['IncidenceOfMalaria'].min()
malaria_data['IncidenceOfMalaria'] = malaria_data.groupby('CountryName')['IncidenceOfMalaria'].transform(
    lambda group: group.fillna(group.min())
).fillna(overall_min)

3. 验证填充结果

可以用以下代码确认填充效果:

# 检查剩余空值数量
print(malaria_data['IncidenceOfMalaria'].isna().sum())
# 按国家查看填充后的统计数据
print(malaria_data.groupby('CountryName')['IncidenceOfMalaria'].describe())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 23:09:22