新冠疫情数据统计 蓝桥杯楼赛第二十三期(不考虑自动化处理缺省值)

原题链接

import csv
import json
import country_converter as coco

def main():
    cc = coco.CountryConverter()
    Confirmed = {"Africa": 0, "Asia": 0, "Oceania": 0,"Europe": 0, "America": 0, "Others": 0, "Total": 0}
    Deaths = {"Africa": 0, "Asia": 0, "Oceania": 0,"Europe": 0, "America": 0, "Others": 0, "Total": 0}
    Recovered = {"Africa": 0, "Asia": 0, "Oceania": 0,"Europe": 0, "America": 0, "Others": 0, "Total": 0}
    Active = {"Africa": 0, "Asia": 0, "Oceania": 0,"Europe": 0, "America": 0, "Others": 0, "Total": 0}

    country_list = []
    ls = []

    data = "楼赛第三题\okcases_country.csv"
    with open(data, 'r') as f:
        reader = csv.reader(f)
        for row in reader:
            if row[0] == "Country_Region":
                pass
            else:
                country_name = row[0]
                country_list.append(country_name)
        continent = cc.convert(names = country_list, to = 'continent', not_found= "Others")

    with open(data, 'r') as f:
        reader = csv.reader(f)    
        rows = [row for row in reader]

        for a in range(len(continent)):
            #print(a)
            #print(int(float(rows[a+1][4])))
            #print(int(float(rows[a+1][5])))
            #print(int(float(rows[a+1][6])))
            #print(int(float(rows[a+1][7])))

            if continent[a] == "Asia":
                Confirmed[continent[a]] = Confirmed.get(continent[a] , 0) + int(float(rows[a+1][4]))
                Deaths[continent[a]] = Deaths.get(continent[a] , 0) + int(float(rows[a+1][5]))
                Recovered[continent[a]] = Recovered.get(continent[a] , 0) + int(float(rows[a+1][6]))
                Active[continent[a]] = Active.get(continent[a] , 0) + int(float(rows[a+1][7]))
            elif continent[a] == "Europe":
                Confirmed[continent[a]] = Confirmed.get(continent[a] , 0) + int(float(rows[a+1][4]))
                Deaths[continent[a]] = Deaths.get(continent[a] , 0) + int(float(rows[a+1][5]))
                Recovered[continent[a]] = Recovered.get(continent[a] , 0) + int(float(rows[a+1][6]))
                Active[continent[a]] = Active.get(continent[a] , 0) + int(float(rows[a+1][7]))
            elif continent[a] == "Africa":
                Confirmed[continent[a]] = Confirmed.get(continent[a] , 0) + int(float(rows[a+1][4]))
                Deaths[continent[a]] = Deaths.get(continent[a] , 0) + int(float(rows[a+1][5]))
                Recovered[continent[a]] = Recovered.get(continent[a] , 0) + int(float(rows[a+1][6]))
                Active[continent[a]] = Active.get(continent[a] , 0) + int(float(rows[a+1][7]))
            elif continent[a] == "America":
                Confirmed[continent[a]] = Confirmed.get(continent[a] , 0) + int(float(rows[a+1][4]))
                Deaths[continent[a]] = Deaths.get(continent[a] , 0) + int(float(rows[a+1][5]))
                Recovered[continent[a]] = Recovered.get(continent[a] , 0) + int(float(rows[a+1][6]))
                Active[continent[a]] = Active.get(continent[a] , 0) + int(float(rows[a+1][7]))
            elif continent[a] == "Oceania":
                Confirmed[continent[a]] = Confirmed.get(continent[a] , 0) + int(float(rows[a+1][4]))
                Deaths[continent[a]] = Deaths.get(continent[a] , 0) + int(float(rows[a+1][5]))
                Recovered[continent[a]] = Recovered.get(continent[a] , 0) + int(float(rows[a+1][6]))
                Active[continent[a]] = Active.get(continent[a] , 0) + int(float(rows[a+1][7]))
            elif continent[a] == "Others":
                Confirmed[continent[a]] = Confirmed.get(continent[a] , 0) + int(float(rows[a+1][4]))
                Deaths[continent[a]] = Deaths.get(continent[a] , 0) + int(float(rows[a+1][5]))
                Recovered[continent[a]] = Recovered.get(continent[a] , 0) + int(float(rows[a+1][6]))
                Active[continent[a]] = Active.get(continent[a] , 0) + int(float(rows[a+1][7]))

            
            Confirmed["Total"] = Confirmed["Africa"] + Confirmed["Asia"] + Confirmed["Oceania"] + Confirmed["Europe"] + Confirmed["America"] +Confirmed["Others"]
            Active["Total"] = Active["Africa"] + Active["Asia"] + Active["Oceania"] + Active["Europe"] + Active["America"] +Active["Others"]
            Deaths["Total"] = Deaths["Africa"] + Deaths["Asia"] + Deaths["Oceania"] + Deaths["Europe"] + Deaths["America"] +Deaths["Others"]
            Recovered["Total"] = Recovered["Africa"] + Recovered["Asia"] + Recovered["Oceania"] + Recovered["Europe"] + Recovered["America"] +Recovered["Others"]
            
            results = {
                "Confirmed": Confirmed,
                "Deaths": Deaths,
                "Recovered": Recovered,
                "Active": Active,
            }
    print(results)    
    return json.dumps(results, indent=2)       
main()
#一个学生物的编程爱好者#

这是在不考虑自动化处理缺省值的情况下的答案,至于使用numpy和pandas的自动化处理的版本近期将会更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

终是蝶衣梦晓楼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值