Python如何用csv.reader将新冠CSV转指定格式字典并统计州确诊死亡总和
实现方案
第一步:修正字典生成逻辑
你当前的字典生成代码直接存储了CSV读取的字符串类型数值,后续求和会触发类型错误,需要先将确诊病例、确诊死亡数转为整数:
import csv def get_covid_dict(file_path): with open(file_path, mode='r') as inp: reader = csv.reader(inp) # 跳过表头 next(reader, None) # 转换数值类型后生成字典,键为(县名, 州名)元组 mydict = {tuple(row[1:3]): [int(row[6]), int(row[7])] for row in reader} return mydict
注意:当前字典键的顺序为
(县名, 州名),如果你需要调整为题目示例的(州名, 县名),可以把键的生成逻辑改为tuple([row[2], row[1]])。
第二步:指定州确诊死亡数求和
遍历字典筛选出目标州的所有记录,累加对应确诊死亡数值即可:
常规实现
def calc_state_deaths(covid_dict, target_state): total = 0 for (county, state), (confirmed_cases, confirmed_deaths) in covid_dict.items(): if state == target_state: total += confirmed_deaths return total
简洁写法(生成器表达式)
也可以直接用一行代码完成求和:
alabama_total = sum(confirmed_deaths for (county, state), (_, confirmed_deaths) in covid_dict.items() if state == "Alabama")
使用示例
# 替换为你的CSV文件实际路径 file_path = "./us_county_covid.csv" covid_dict = get_covid_dict(file_path) # 统计阿拉巴马州累计确诊死亡数 alabama_deaths = calc_state_deaths(covid_dict, "Alabama") print(alabama_deaths)
内容的提问来源于stack exchange,提问作者Answersplease
相关产品推荐
相关产品推荐

